iOS---Checklist

總結(jié)過些面試題,沒堅持下去债鸡,后來把這些當 checklist江滨,面試的時候?qū)嵲跊]話聊的時候做個提醒,語言厌均、框架唬滑、運行機制性質(zhì)的:

[※]@property中有哪些屬性關鍵字?
[※]weak屬性需要在dealloc中置nil么棺弊?
答:不需要晶密,在 ARC 環(huán)境下,無論是強指針還是弱指針都不需要在 dealloc 中置為 nil 模她,ARC 會自動處理的稻艰。

[※※]@synthesize和@dynamic分別有什么作用?
答:
@property有兩個對應的詞侈净,一個是 @synthesize尊勿,一個是 @dynamic。如果 @synthesize和 @dynamic都沒寫畜侦,那么默認的就是@syntheszie var = _var;
@synthesize 的語義是如果你沒有手動實現(xiàn) setter 方法和 getter 方法元扔,那么編譯器會自動為你加上這兩個方法。
@dynamic 告訴編譯器:屬性的 setter 與 getter 方法由用戶自己實現(xiàn)旋膳,不自動生成澎语。(當然對于 readonly 的屬性只需提供 getter 即可)。假如一個屬性被聲明為 @dynamic var溺忧,然后你沒有提供 @setter方法和 @getter 方法咏连,編譯的時候沒問題,但是當程序運行到 instance.var = someVar鲁森,由于缺 setter 方法會導致程序崩潰祟滴;或者當運行到 someVar = var 時,由于缺 getter 方法同樣會導致崩潰歌溉。編譯時沒問題垄懂,運行時才執(zhí)行相應的方法骑晶,這就是所謂的動態(tài)綁定。

[※※※]ARC下草慧,不顯式指定任何屬性關鍵字時桶蛔,默認的關鍵字都有哪些?
這個問題真是刺中要害漫谷,當我的@property什么都不寫的話仔雷,會怎么樣呢!
@property NSArray *user;
我沒寫這些關鍵詞舔示,效果如下
@property (strong, atomic, readwrite) NSArray *user;
strong 是內(nèi)存的管理方式碟婆,其他的還有weak, copy惕稻, assign(基本類型時候)竖共。
atomic 是線程安全的關鍵詞俺祠,還有nonatomic公给。
readwrite 是讀寫關鍵詞,還有readonly蜘渣。

[※※※]用@property聲明的NSString(或NSArray淌铐,NSDictionary)經(jīng)常使用copy關鍵字,為什么宋梧?如果改用strong關鍵字匣沼,可能造成什么問題?

[※※※]@synthesize合成實例變量的規(guī)則是什么捂龄?假如property名為foo,存在一個名為_foo的實例變量加叁,那么還會自動合成新變量么倦沧?
[※※※※※]在有了自動合成屬性實例變量之后,@synthesize還有哪些使用場景它匕?

[※※]objc中向一個nil對象發(fā)送消息將會發(fā)生什么展融?
不會發(fā)生奔潰

[※※※]objc中向一個對象發(fā)送消息[obj foo]和objc_msgSend()函數(shù)之間有什么關系?
[※※※]什么時候會報unrecognized selector的異常豫柬?
答案

[※※※※]一個objc對象如何進行內(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找到對應的IMP地址?(分別考慮類方法和實例方法)
    [※※※※]使用runtime Associate方法關聯(lián)的對象础嫡,需要在主對象dealloc的時候釋放么指么?
    [※※※※※]objc中的類方法和實例方法有什么本質(zhì)區(qū)別和聯(lián)系酝惧?
    [※※※※※]_objc_msgForward函數(shù)是做什么的,直接調(diào)用它將會發(fā)生什么伯诬?
    [※※※※※]runtime如何實現(xiàn)weak變量的自動置nil晚唇?
    [※※※※※]能否向編譯后得到的類中增加實例變量?能否向運行時創(chuàng)建的類中添加實例變量盗似?為什么哩陕?

[※※※]runloop和線程有什么關系?
[※※※]runloop的mode作用是什么赫舒?
[※※※※]以+ scheduledTimerWithTimeInterval...的方式觸發(fā)的timer悍及,在滑動頁面上的列表時,timer會暫定回調(diào)号阿,為什么并鸵?如何解決?
[※※※※※]猜想runloop內(nèi)部是如何實現(xiàn)的扔涧?

[※]objc使用什么機制管理對象內(nèi)存园担?
[※※※※]ARC通過什么方式幫助開發(fā)者管理內(nèi)存?
[※※※※]不手動指定autoreleasepool的前提下枯夜,一個autorealese對象在什么時刻釋放弯汰?(比如在一個vc的viewDidLoad中創(chuàng)建)
分兩種情況:手動干預釋放時機、系統(tǒng)自動去釋放湖雹。
手動干預釋放時機–指定autoreleasepool 就是所謂的:當前作用域大括號結(jié)束時釋放咏闪。
系統(tǒng)自動去釋放–不手動指定autoreleasepool
Autorelease對象會在當前的 runloop 迭代結(jié)束時釋放。
如果在一個vc的viewDidLoad中創(chuàng)建一個 Autorelease對象摔吏,那么該對象會在 viewDidAppear 方法執(zhí)行前就被銷毀了鸽嫂。

[※※※※]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埂材?
[※※※※※]以下代碼運行結(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中的集合運算符如何使用糙俗?
    [※※※※]KVC和KVO的keyPath一定是屬性么?
    [※※※※※]如何關閉默認的KVO的默認實現(xiàn)预鬓,并進入自定義的KVO實現(xiàn)巧骚?
    [※※※※※]apple用什么方式實現(xiàn)對一個對象的KVO?

[※※]IBOutlet連出來的視圖屬性為什么可以被設置成weak?
[※※※※※]IB中User Defined Runtime Attributes如何使用格二?

[※※※]如何調(diào)試BAD_ACCESS錯誤
[※※※]lldb(gdb)常用的調(diào)試命令劈彪?

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市顶猜,隨后出現(xiàn)的幾起案子沧奴,更是在濱河造成了極大的恐慌,老刑警劉巖长窄,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件滔吠,死亡現(xiàn)場離奇詭異,居然都是意外死亡挠日,警方通過查閱死者的電腦和手機疮绷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來嚣潜,“玉大人冬骚,你說我怎么就攤上這事《悖” “怎么了只冻?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長计技。 經(jīng)常有香客問我属愤,道長,這世上最難降的妖魔是什么酸役? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮驾胆,結(jié)果婚禮上涣澡,老公的妹妹穿的比我還像新娘。我一直安慰自己丧诺,他們只是感情好入桂,可當我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著驳阎,像睡著了一般抗愁。 火紅的嫁衣襯著肌膚如雪馁蒂。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天蜘腌,我揣著相機與錄音沫屡,去河邊找鬼。 笑死撮珠,一個胖子當著我的面吹牛沮脖,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播芯急,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼勺届,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了娶耍?” 一聲冷哼從身側(cè)響起免姿,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎榕酒,沒想到半個月后胚膊,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡奈应,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年澜掩,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片杖挣。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡肩榕,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出惩妇,到底是詐尸還是另有隱情株汉,我是刑警寧澤,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布歌殃,位于F島的核電站乔妈,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏氓皱。R本人自食惡果不足惜路召,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望波材。 院中可真熱鬧股淡,春花似錦、人聲如沸廷区。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽隙轻。三九已至埠帕,卻和暖如春垢揩,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背敛瓷。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工叁巨, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人琐驴。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓俘种,卻偏偏與公主長得像,于是被迫代替她去往敵國和親绝淡。 傳聞我的和親對象是個殘疾皇子宙刘,可洞房花燭夜當晚...
    茶點故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容