1.weak和assign區(qū)別
2. 用@property聲明的NSString(或NSArray,NSDictionary)經(jīng)常使用copy關鍵字,為什么?如果改用strong關鍵字,可能造成什么問題?這個寫法會出什么問題: @property (copy) NSMutableArray *array;
3. 下面的代碼輸出什么?
@implementation?Son?:?Father
-?(id)init
{
self?=?[super?init];
if?(self)?{
NSLog(@"%@",?NSStringFromClass([self?class]));
NSLog(@"%@",?NSStringFromClass([super?class]));
}
return?self;
}
@end
4.以+ scheduledTimerWithTimeInterval...的方式觸發(fā)的timer,在滑動頁面上的列表時,timer會暫定回調,為什么?如何解決?
5.RunLoop和Autoreleasepool
6.什么是循環(huán)引用?使用block時什么情況會發(fā)生引用循環(huán),如何解決?
7.NSMutableArray *mArray = [NSMutableArray arrayWithObjects:@"a",@"b",@"abc",nil];
NSMutableArray *mArrayCount = [NSMutableArray arrayWithCapacity:1];
[mArray enumerateObjectsWithOptions:NSEnumerationConcurrent usingBlock: ^(id obj,NSUInteger idx, BOOL *stop){
[mArrayCount addObject:[NSNumber numberWithInt:[obj length]]];
}];
NSLog(@"%@",mArrayCount);
8.多線程相關:
如何用GCD同步若干個異步調用?(如根據(jù)若干個url異步加載多張圖片,然后在都下載完成后合成一張整圖)
9.KVC KVO 原理
10.線程間如何通信
11.__weak 和 __block有啥區(qū)別,ARC環(huán)境下
1.__block不管是ARC還是MRC模式下都可以使用,可以修飾對象,還可以修飾基本數(shù)據(jù)類型。
2.__weak只能在ARC模式下使用,也只能修飾對象(NSString),不能修飾基本數(shù)據(jù)類型(int)。
3.__block對象可以在block中被重新賦值,__weak不可以。
12.cell復用
一個顯示中的Cell隊列,一個可復用隊列
屏幕上的Cell移出屏幕后會移到可復用隊列中
新的Cell在創(chuàng)建之前會去復用隊列里面取,取不到就alloc一個
循環(huán)引用產(chǎn)生的原因就是兩個對象分別對彼此強引用,造成一方釋放前都需要先把對方釋放,造成死鎖