[※]@property中有哪些屬性關鍵字?
原子性:atomic/nonatomic
記憶體管理語義:retain、strong、copy、assign、weak
讀寫許可權:readonly、readwrite
方法名:getter/setter
[※]weak屬性需要在dealloc中置nil麼?
不需要,因為weak是弱引用,不擁有新物件不釋放舊物件,原物件釋放之後,weak修飾的物件也被釋放掉。
[※※]@synthesize和@dynamic分別有什麼作用?
@synthesize是告訴系統如果沒有手動設定setter/getter方法系統會幫助你設定setter/getter方法。
@dynamic告訴系統手動實現setter/getter方法。如果設定了這個屬性,但是沒有實現setter/getter方法,那麼在編譯的時候沒問題,在執行的時候會崩潰,這也是oc的動態繫結的特性。
[※※※]arc下,不顯式指定任何屬性關鍵字時,預設的關鍵字都有哪些?
我回答:automic
1、物件型別預設關鍵字:nonatomic,strong,readwrite,setter,getter
2、屬性預設關鍵字:nonatomic,assign,readwrite,setter,getter
[※※※]用@property宣告的nsstring(或nsarray,nsdictionary)經常使用copy關鍵字,為什麼?如果改用strong關鍵字,可能造成什麼問題?
主要是為了保證宣告的屬性值的確定性。以nsstring修飾的具體場景分析:
情景1:copy宣告的屬性a被賦值的物件也是不可變的b,那麼a會做乙個淺拷貝,也就是生成新的指標指向b,同時引用計數+1,如果使用strong修飾a,a引用計數加一,實際效果和copy也是一樣的。
情景2:copy宣告的屬性a被賦值的物件也是可變的b,那麼a會做乙個深拷貝,轉殖乙個全新的b(有自己的記憶體和指標)。如果用strong來修飾,那麼指標還是指向原來b的位址。
問題:如果在某個時刻b的內容發生了改變,用copy修飾的a資料不會改變。strong修飾的a會隨著b的改變而改變,可能會帶來莫名其妙的錯誤。具體用哪乙個,看具體的場景了,但是我們一般為了保證資料的穩定性,使用copy修飾。
注意:copy修飾過的屬性就成了乙個不可變的,所以無法進行增刪改操作。
[※※※]@synthesize合成例項變數的規則是什麼?假如property名為foo,存在乙個名為_foo的例項變數,那麼還會自動合成新變數麼?
先將舊的資料release,然後再賦值新的例項變數。
母雞啊[※※※※※]在有了自動合成屬性例項變數之後,@synthesize還有哪些使用場景?
不知道[※※]objc中向乙個nil物件傳送訊息將會發生什麼?
objc可以對乙個nil的物件傳送訊息,不會崩潰。
[※※※]objc中向乙個物件傳送訊息[obj foo]和objc_msgsend()函式之間有什麼關係?
runtime會將其轉化為,objc_msgsend(obj,@selector(foo))
[※※※]什麼時候會報unrecognized selector的異常?
定義物件型別和建立物件型別不一致導致的。
[※※※※]乙個objc物件如何進行記憶體布局?(考慮有父類的情況)
不知道,如何?
[※※※※]乙個objc物件的isa的指標指向什麼?有什麼作用?
isa指標指向物件所在的類,找到物件所在的類,然後進行方法的實現。
面試題 PHP面試題
建議 比如是系統配置,缺少了無法執行,自然使用 require 如果某一段程式少了,只是少了統計 訪問的,不是必不可少的。可以使用 include 而加不加 once 就是效率上的區別,雖然系統會幫你考慮只包含一次,但系統的判斷會降低效率,因此,更應該在開發之初,把目錄結構調整高好,盡量不使用 on...
面試題 騰訊2012面試題
問題描述 例如手機朋友網有n個伺服器,為了方便使用者的訪問會在伺服器上快取資料,因此使用者每次訪問的時候最好能保持同一臺伺服器。已有的做法是根據serveripindex qqnum n 得到請求的伺服器,這種方法很方便將使用者分到不同的伺服器上去。但是如果一台伺服器死掉了,那麼n就變為了n 1,那...
面試題總結 html面試題)
附上鏈結 doctype 的作用是什麼?宣告一般位於文件的第一行,它的作用主要是告訴瀏覽器以什麼樣的模式來解析文件。一般指定了之後會以標準模式來 進行文件解析,否則就以相容模式進行解析。在標準模式下,瀏覽器的解析規則都是按照最新的標準進行解析的。而在相容模式下,瀏 覽器會以向後相容的方式來模擬老式瀏...