[※]@property中有哪些屬性關(guān)鍵字州袒?
[※]weak屬性需要在dealloc中置nil么歪玲?
[※※]@synthesize和@dynamic分別有什么作用站绪?
[※※※]ARC下惧盹,不顯式指定任何屬性關(guān)鍵字時絮记,默認(rèn)的關(guān)鍵字都有哪些鸣皂?
[※※※]用@property聲明的NSString(或NSArray抓谴,NSDictionary)經(jīng)常使用copy關(guān)鍵字,為什么寞缝?如果改用strong關(guān)鍵字癌压,可能造成什么問題?
[※※※]@synthesize合成實例變量的規(guī)則是什么荆陆?假如property名為foo滩届,存在一個名為_foo的實例變量,那么還會自動合成新變量么被啼?
[※※※※※]在有了自動合成屬性實例變量之后帜消,@synthesize還有哪些使用場景?
[※※]objc中向一個nil對象發(fā)送消息將會發(fā)生什么浓体?
[※※※]objc中向一個對象發(fā)送消息[obj foo]和objc_msgSend()函數(shù)之間有什么關(guān)系泡挺?
[※※※]什么時候會報unrecognized selector的異常?
[※※※※]一個objc對象如何進(jìn)行內(nèi)存布局命浴?(考慮有父類的情況)
[※※※※]一個objc對象的isa的指針指向什么娄猫?有什么作用贱除?
[※※※※]下面的代碼輸出什么?
@implementation Son : Father
- (id)init
{
self = [super init];
if (self) {
NSLog(@"%@", NSStringFromClass([self class]));
NSLog(@"%@", NSStringFromClass([super class]));
}
return self;
}
@end
[※※※※]runtime如何通過selector找到對應(yīng)的IMP地址媳溺?(分別考慮類方法和實例方法)
[※※※※]使用runtime Associate方法關(guān)聯(lián)的對象月幌,需要在主對象dealloc的時候釋放么?
[※※※※※]objc中的類方法和實例方法有什么本質(zhì)區(qū)別和聯(lián)系褂删?
[※※※※※]_objc_msgForward函數(shù)是做什么的飞醉,直接調(diào)用它將會發(fā)生什么冲茸?
[※※※※※]runtime如何實現(xiàn)weak變量的自動置nil屯阀?
[※※※※※]能否向編譯后得到的類中增加實例變量?能否向運(yùn)行時創(chuàng)建的類中添加實例變量轴术?為什么难衰?
[※※※]runloop和線程有什么關(guān)系?
[※※※]runloop的mode作用是什么逗栽?
[※※※※]以+ scheduledTimerWithTimeInterval...的方式觸發(fā)的timer盖袭,在滑動頁面上的列表時,timer會暫定回調(diào)彼宠,為什么鳄虱?如何解決?
[※※※※※]猜想runloop內(nèi)部是如何實現(xiàn)的凭峡?
[※]objc使用什么機(jī)制管理對象內(nèi)存拙已?
[※※※※]ARC通過什么方式幫助開發(fā)者管理內(nèi)存?
[※※※※]不手動指定autoreleasepool的前提下摧冀,一個autorealese對象在什么時刻釋放倍踪?(比如在一個vc的viewDidLoad中創(chuàng)建)
[※※※※]BAD_ACCESS在什么情況下出現(xiàn)?
[※※※※※]蘋果是如何實現(xiàn)autoreleasepool的索昂?
[※※]使用block時什么情況會發(fā)生引用循環(huán)建车,如何解決?
[※※]在block內(nèi)如何修改block外部變量椒惨?
[※※※]使用系統(tǒng)的某些block api(如UIView的block版本寫動畫時)缤至,是否也考慮引用循環(huán)問題?
[※※]GCD的隊列(dispatch_queue_t)分哪兩種類型康谆?
[※※※※]如何用GCD同步若干個異步調(diào)用领斥?(如根據(jù)若干個url異步加載多張圖片,然后在都下載完成后合成一張整圖)
[※※※※]dispatch_barrier_async的作用是什么秉宿?
[※※※※※]蘋果為什么要廢棄dispatch_get_current_queue戒突?
[※※※※※]以下代碼運(yùn)行結(jié)果如何?
- (void)viewDidLoad
{
[super viewDidLoad];
NSLog(@"1");
dispatch_sync(dispatch_get_main_queue(), ^{
NSLog(@"2");
});
NSLog(@"3");
}
[※※]addObserver:forKeyPath:options:context:各個參數(shù)的作用分別是什么描睦,observer中需要實現(xiàn)哪個方法才能獲得KVO回調(diào)膊存?
[※※※]如何手動觸發(fā)一個value的KVO
[※※※]若一個類有實例變量NSString *_foo,調(diào)用setValue:forKey:時,可以以foo還是_foo作為key隔崎?
[※※※※]KVC的keyPath中的集合運(yùn)算符如何使用今艺?
[※※※※]KVC和KVO的keyPath一定是屬性么?
[※※※※※]如何關(guān)閉默認(rèn)的KVO的默認(rèn)實現(xiàn)爵卒,并進(jìn)入自定義的KVO實現(xiàn)虚缎?
[※※※※※]apple用什么方式實現(xiàn)對一個對象的KVO?
[※※]IBOutlet連出來的視圖屬性為什么可以被設(shè)置成weak?
[※※※※※]IB中User Defined Runtime Attributes如何使用钓株?
[※※※]如何調(diào)試BAD_ACCESS錯誤
[※※※]lldb(gdb)常用的調(diào)試命令实牡?