http://blog.csdn.net/david21984/article/details/57451917
http://www.cnblogs.com/bossren/p/6401067.html
http://www.cnblogs.com/bossren/p/6401067.html
http://www.lxweimin.com/p/cbbce3818440
https://mp.weixin.qq.com/s?__biz=MzAxMzE2Mjc2Ng==&mid=504672382&idx=1&sn=8fdc7909c48c5ae094bfc06ac1f21fb8&chksm=0046d01f373159093a99da48ef119a5a16b1c0015d680ba932da43a2b1c600c8d8ba6163cb72&mpshare=1&scene=1&srcid=0724kRv5yxhAv5iWjnB69Zry&pass_ticket=sOx9ktwT151QujUkRF%2FkHnsfxW5bp22TJAngHwEgKTg%3D#rd
https://github.com/jobbole/awesome-ios-cn
http://www.lxweimin.com/p/ff36c9dcf50b
http://www.lxweimin.com/p/ff36c9dcf50b
http://www.lxweimin.com/p/ff36c9dcf50b
git@git.corp.plu.cn:LongzhuLiveiOSGroup/LongzhuLive_iOS.git
本人? 15:34:40
給你們一批賬號
15000000001~~~15000000060都可以用
密碼基本上都是111111111w,前面幾個賬號里面還有龍幣,
15000000099,98,97有開播權限
本人? 15:04:06
http://www.lxweimin.com/p/9c450e512020
本人? 15:32:14
iOS 逆天框架 FLEX
本人? 15:51:56
http://cdn.cocimg.com/bbs/attachment/Fid_6/6_24457_90eabb4ed5b3863.pdf
本人? 16:36:27
http://www.cocoachina.com/ios/20150225/11163.html
本人? 19:28:31
https://blog.cnbluebox.com/blog/2014/04/15/gitlabde-shi-yong/
本人? 10:41:12
http://www.lxweimin.com/p/f970872fdc22
本人? 15:06:31
http://www.lxweimin.com/p/e89cd880c1d8
本人? 11:02:11
https://segmentfault.com/a/1190000005022705
本人? 11:03:07
http://www.lxweimin.com/p/76614766b2ea
本人? 17:02:29
蘭鳳生化? 富邦股份
本人? 12:45:43
https://www.2cto.com/kf/201410/344597.html
本人? 12:48:20
先從當前class的cache方法列表(cache methodLists)里去找
找到了,跳到對應函數實現
沒找到,就從class的方法列表(methodLists)里找
還找不到,就到super class的方法列表里找,直到找到基類(NSObject)為止
最后再找不到,就會進入動態方法解析和消息轉發的機制。(這部分知識,下次再細談)
本人? 13:05:02
http://blog.csdn.net/david21984/article/details/57451917
本人? 13:05:17
http://www.lxweimin.com/p/e89cd880c1d8
本人? 13:05:29
http://www.lxweimin.com/p/76614766b2ea
本人? 13:05:41
https://segmentfault.com/a/1190000005022705
本人? 13:05:52
http://www.lxweimin.com/p/9c450e512020
本人? 13:06:07
http://www.cnblogs.com/bossren/p/6401067.html
本人? 20:54:48
http://www.lxweimin.com/p/3c95baccaf61
本人? 21:13:12
http://blog.csdn.net/lizhilin_vip/article/details/53185423
本人? 21:13:23
給你們一批賬號
15000000001~~~15000000060都可以用
密碼基本上都是111111111w,前面幾個賬號里面還有龍幣,
15000000099,98,97有開播權限
本人? 15:04:06
http://www.lxweimin.com/p/9c450e512020
本人? 15:32:14
iOS 逆天框架 FLEX
本人? 15:51:56
http://cdn.cocimg.com/bbs/attachment/Fid_6/6_24457_90eabb4ed5b3863.pdf
本人? 16:36:27
http://www.cocoachina.com/ios/20150225/11163.html
本人? 19:28:31
https://blog.cnbluebox.com/blog/2014/04/15/gitlabde-shi-yong/
本人? 10:41:12
http://www.lxweimin.com/p/f970872fdc22
本人? 15:06:31
http://www.lxweimin.com/p/e89cd880c1d8
本人? 11:02:11
https://segmentfault.com/a/1190000005022705
本人? 11:03:07
http://www.lxweimin.com/p/76614766b2ea
本人? 17:02:29
蘭鳳生化? 富邦股份
本人? 12:45:43
https://www.2cto.com/kf/201410/344597.html
本人? 12:48:20
先從當前class的cache方法列表(cache methodLists)里去找
找到了,跳到對應函數實現
沒找到,就從class的方法列表(methodLists)里找
還找不到,就到super class的方法列表里找,直到找到基類(NSObject)為止
最后再找不到,就會進入動態方法解析和消息轉發的機制。(這部分知識,下次再細談)
本人? 13:05:02
http://blog.csdn.net/david21984/article/details/57451917
本人? 13:05:17
http://www.lxweimin.com/p/e89cd880c1d8
本人? 13:05:29
http://www.lxweimin.com/p/76614766b2ea
本人? 13:05:41
https://segmentfault.com/a/1190000005022705
本人? 13:05:52
http://www.lxweimin.com/p/9c450e512020
本人? 13:06:07
http://www.cnblogs.com/bossren/p/6401067.html
本人? 20:54:46
http://www.lxweimin.com/p/3c95baccaf61
本人? 21:13:10
http://blog.csdn.net/lizhilin_vip/article/details/53185423
本人? 21:54:24
http://www.kanzhun.com/gsmsh10532698.html?ka=recommend-interview-showall5
本人? 21:59:52
http://www.lxweimin.com/p/2bf505398f51
本人? 22:01:19
http://www.lxweimin.com/p/715417b93991
本人? 22:04:44
問了很多數據結構和算法的問題,比如鏈表的操作,操作系統對內存空間的使用情況,和一些類似智力題的問題。個人感覺需要計算機整個體系有一個比較全面的認識,而且自己也確實思考過這方面的問題,才能有個較好的回答。關于iOS的部分,問了類的結構,runtime,runloop和線程安全的問題。
本人? 22:05:46
http://www.lxweimin.com/p/a5dd014edb13
本人? 22:14:44
http://www.lxweimin.com/p/9a5aac4c0d55
本人? 22:20:58
http://mydown.yesky.com/news/87281483.html
本人? 22:22:21
http://www.lxweimin.com/p/9a5aac4c0d55
本人? 22:22:30
http://mydown.yesky.com/news/87281483.html
本人? 22:24:37
https://www.nowcoder.com/discuss/11597?type=0&order=3&pos=1000&page=1
本人? 22:27:09
http://www.kanzhun.com/gsmsh619641.html
本人? 22:27:37
http://www.kanzhun.com/msh/g711383-z102806/
本人? 22:28:58
http://www.kanzhun.com/msh/g711383-z3634/
本人? 22:32:20
http://blog.csdn.net/kamsau/article/details/39642535
本人? 17:47:32
http://blog.csdn.net/qq_26768741/article/details/51357439
本人? 18:46:54
category & extension
蘋果推薦分類的使用
1.給已經存在的類添加方法
2.把類的實現分開在幾個不同文件中
減少單個文件的體積
把不同功能組織到不同的category里
多個開發者共同完成一個類
按照需求加載想要的category
3.聲明私有方法
除此之外,我們還可以轉換思想,將category使用到如下地方:
4.模仿多繼承
5.把framework的私有方法分開
category和extension區別1
category: 類別,分類
專門用來給類添加新的方法
不能給類添加成員屬性,添加了成員變量,也無法取到
注意:其實可以通過runtime給分類添加屬性
分類中用@property定義變量,只會生成變量的getter,setter方法的聲明,不能生成方法實現和帶下劃線的成員變量。
extension:類擴展
可以說成是特殊的分類,也稱作匿名分類
可以給類添加成員屬性,但是是私有變量
可以給類添加方法,也是私有方法
category和extension區別2
雖然有人說extension是一個特殊的category,也有人將extension叫做匿名分類,但是其實兩者差別很大。
extension
在編譯器決議,是類的一部分,在編譯器和頭文件的@interface和實現文件里的@implement一起形成了一個完整的類。
伴隨著類的產生而產生,也隨著類的消失而消失。
extension一般用來隱藏類的私有消息,你必須有一個類的源碼才能添加一個類的extension,所以對于系統一些類,如nsstring,就無法添加類擴展
category
是運行期決議的
類擴展可以添加實例變量,分類不能添加實例變量
原因:因為在運行期,對象的內存布局已經確定,如果添加實例變量會破壞類的內部布局,這對編譯性語言是災難性的。
category底層結構
我們知道,所有OC類和對象,在runtime層都是用struct表示的,category在runtime層使用結構體category_t定義的,包含了如下:
name 類名
cls 類
instanceMethods 對象方法
classMethods 類方法
protocols 協議列表
instanceProperties 添加的所有屬性
category加載
在runtime,系統會將包含的內容添加如下:
把category的實力方法,協議,已經屬性添加到類上
把類方法和協議添加到metaclass
分類加載和方法調用順序
加載:先加載原類的+load方法,再加載分類的+load方法,若多個分類,則根據編譯順序加載
調用:先調用分類的方法,再調用原類的方法,分類方法會覆蓋原類的方法
分類覆蓋類的方法
如果分類中的方法與類的方法同名,則將會覆蓋類的方法,實現原理:分類的對象方法會添加到類的方法列表中,分類的方法會添加到類的相應方法列表中(對象方法添加到類的方法列表,類方法會添加到metaclass列表),而且排列順序會與原類的同名方法排在一起,且在原類的同名方法的前面。方法調用時會根據順序先找到第一同名方法就調用,因此會覆蓋原類的同名方法。
分類中添加成員屬性
在runtime層面可以通過關聯對象為分類添加成員屬性
作者:erer22Colin
鏈接:http://www.lxweimin.com/p/1ce81290c7a9
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
本人? 18:58:45
http://www.cocoachina.com/ios/20160712/17010.html
本人? 18:59:42
http://www.cocoachina.com/ios/20160517/16290.html
本人? 11:48:20
http://blog.csdn.net/fisherwan/article/details/19760681
本人? 12:21:14
@implementation Singleton
static Singleton* _instance = nil;
+(instancetype) shareInstance
{
static dispatch_once_t onceToken ;
dispatch_once(&onceToken, ^{
_instance = [[super allocWithZone:NULL] init] ;
}) ;
return _instance ;
}
作者:瘋狂的米老鼠
鏈接:http://www.lxweimin.com/p/5e3761f28bb0
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
本人? 12:23:54
http://www.lxweimin.com/p/e89cd880c1d8
本人? 12:24:58
// 改進思路:設置標志位,明顯如果有一趟沒有發生交換(flag = flase),說明排序已經完成.
void BubbleSort2(int arr[], int num){
int k = num;
int j;
bool flag = true;
while (flag)
{
flag = false;
for (j = 1; j < k; j++)
{
if (arr[j - 1] > arr[j])
{
swap1(&arr[j - 1], &arr[j]);
flag = true;
}
}
k--;
}
}
//改進思路:記錄一輪下來標記的最后位置,下次從頭部遍歷到這個位置就Okvoid BubbleSort3(int arr[], int num){
int k, j;
int flag = num;
while (flag > 0)
{
k = flag;
flag = 0;
for (j = 1; j < k; j++)
{
if (arr[j - 1] > arr[j])
{
swap1(&arr[j - 1], &arr[j]);
flag = j;
}
}
}
}
作者:WendySays
鏈接:http://www.lxweimin.com/p/e89cd880c1d8
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
本人? 12:25:50
void swap(int *const p1, int *const p2){
int tmp = *p1;
*p1 = *p2;
*p2 = tmp;
}
//最后一個元素當做樞軸元素的簡易版本
void? qsort(int data[], int start, int end){
//不能少了參數合法性判斷!!
if (data == NULL || start < 0 || end < 0)
{
return;
}
int? pivot;
if (start < end)
{
pivot = partition(data, start, end);
qsort(data, start, pivot -1);
qsort(data,pivot+1,end);
}
}
作者:WendySays
鏈接:http://www.lxweimin.com/p/e89cd880c1d8
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
本人? 12:26:05
快排序
本人? 12:27:44
//最后一個元素當做樞軸元素的簡易版本
int partition(int data[], int start, int end){
//不能少了參數合法性判斷!!
if (data == NULL || start < 0 || end < 0)
{
throw new std::exception("invalid args!");
}
int i, j, pivot;
pivot = data[end];? //the last item as pivot
i = start;
j = end - 1;
for (;;)
{
//注意這個for循環前面的條件
for (; i < end -1 && data[i] <= pivot; i++);
for (; j >= 0 && data[j] >= pivot; j--);
if (i < j)
swap(&data[i], &data[j]);
else
break;
}
if(i < end -1)
swap(&data[i], &data[end]);? //now i is the pivot index in the array
return i;
}
作者:WendySays
鏈接:http://www.lxweimin.com/p/e89cd880c1d8
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
本人? 12:27:59
基于partiton的第k小元素的選擇算法:
int k_qsort(int k, int data[], int start, int end)
{
//不能少了參數合法性判斷!!
if (data == NULL || start < 0 || end < 0 || start > end)
{
throw new std::exception("invalid args!");
}
//k大于數組長度
if (k > end - start + 1)
{
throw new std::exception("no valid result!");
}
//partition實現見上
int pivot = partition(data, start, end);
if (k == pivot - start + 1)
return data[pivot];
else if (k < pivot - start + 1)//target before pivot
return k_qsort(k, data, start, pivot - 1);
else //target after? pivot
return k_qsort((k - (pivot - start + 1)), data, pivot + 1, end);
}
作者:WendySays
鏈接:http://www.lxweimin.com/p/e89cd880c1d8
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
本人? 10:18:36
http://www.cnblogs.com/lixiaohui-ambition/archive/2012/09/25/2703195.html
本人? 10:18:44
鏈表
本人? 10:48:17
http://blog.csdn.net/luckyxiaoqiang/article/details/7393134
本人? 11:02:08
http://blog.csdn.net/luckyxiaoqiang/article/details/7518888
本人? 11:02:49
http://blog.csdn.net/WalkingInTheWind/article/category/1387894/2
本人? 11:54:33
http://blog.csdn.net/luckyxiaoqiang/article/details/7518888
本人? 12:02:50
http://www.lxweimin.com/p/b75f40380536
本人? 12:07:22
http://www.lxweimin.com/p/670318acae90
本人? 12:09:17
http://www.lxweimin.com/p/e89cd880c1d8
本人? 12:35:39
void quiksort(int a[],int low,int high)
{
int i = low;
int j = high;
int temp = a[i];
if( low < high)
{
while(i < j)
{
while((a[j] >= temp)&& (i < j))
{
j--;
}
a[i] = a[j];
while((a[i] <= temp) && (i < j))
{
i++;
}
a[j]= a[i];
}
a[i] = temp;
quiksort(a,low,i-1);
quiksort(a,j+1,high);
}
else
{
return;
}
}
void main()
{
int arry[5] = {23,1,21,4,19};
quiksort(arry,0,4);
for(i=0;i<5;i++)
{
printf('%d ',arr[i]);
}
printf('\n');
}
\您有一次免費診股,點擊進入
本人? 10:59:46
http://www.lxweimin.com/p/fc4a37cc948f
本人? 11:09:20
http://www.lxweimin.com/p/dfe08b5c3085