我有一個Xcode 3.2目標項目。我想將此項目轉換爲ARC以改善將非ARC項目轉換爲ARC
的性能。我正在執行這些步驟。
編輯 - > Refactor->轉換成Objective C的ARC
我已經得到了一些.mm文件到我禁用使用-fno-objc弧的弧。但即使在
這我收到很多錯誤(ARC問題)。用於例如主要是在自我= [超級INIT]呼叫時,
誤差不能分配給自在init家族的方法之外。可以
有人告訴我我遵循正確的步驟嗎?
我有一個Xcode 3.2目標項目。我想將此項目轉換爲ARC以改善將非ARC項目轉換爲ARC
的性能。我正在執行這些步驟。
編輯 - > Refactor->轉換成Objective C的ARC
我已經得到了一些.mm文件到我禁用使用-fno-objc弧的弧。但即使在
這我收到很多錯誤(ARC問題)。用於例如主要是在自我= [超級INIT]呼叫時,
誤差不能分配給自在init家族的方法之外。可以
有人告訴我我遵循正確的步驟嗎?
我是想一謨轉換爲ARC和從舊創建一個新的,包括文件後 - 我得到的問題之一是
無法分配到「自我」的外方法在init家庭
的選擇名稱必須以init
開始 - 不僅如此 - 在我的情況初始化選擇是:
-(id)initwithPage:(unsigned)pageNum {...}
注意小'w'。
我已經把它改爲:
-(id)initWithPage:(unsigned)pageNum {...}
通知資本 'W'!
我的問題解決了。
我希望這可以幫助別人。
雷Wenderlich的教程有一個不錯的ARC-轉換兩部分教程採取哪些應詳細正確的步驟:Part 1Part 2
在您遇到的描述幾乎總結起來誤差的條款:您正在使用不符合the standard for init methods的方法分配到self
。我不能說這是否是合法的ARC之前,但它現在已經不復存在了。爲了解決這個問題,可以將它作爲一個init方法(遵循初始化方法,將一個超級初始化方法調用爲self,初始化任何值並返回self),或者將其賦值給self。對於其他錯誤,請發表任何您遇到問題的帖子(其中很多內容都在Ray的教程中介紹),我們會盡我們所能。
即使我也在我的XCode中觀察過它。 – Raj
附加說明:在LLVM的文檔中提到了這一點(雖然非常巧妙):「選擇器在某個選擇器族中,如果忽略任何前導下劃線,選擇器的第一個組件完全由方法族的名稱組成,或者它以名稱開頭,後面跟着字符**,而不是小寫字母。**「 – Xono
並且不要忘記 - (id)返回值! – JeanNicolas