2

在5之前的Xcode版本中,我們可以在創建項目時禁用項目設置中的ARC。現在ARC正在爲我造成這個問題。使用Xcode 5禁用ARC

有一個屬性列表文件,對於閱讀步驟,編譯器給我一個錯誤:「隱式轉換'int'到'id'不允許使用ARC」。我沒有與Xcode 4相同的代碼有這個問題。在我的屬性列表文件中,鍵是數字,也在我的viewController.m當我不允許ARC的目標,警告仍然存在。

我看不到我如何添加編譯器標誌。代碼(與法國的字符串):

NSString *error; 
NSString *rootPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; 


NSString *plistPath = [rootPath stringByAppendingPathComponent:@"Save.plist"]; 

NSArray *keys = [NSArray arrayWithObjects:@"valeurCompteur1", @"valeurCompteur2", @"valeurCompteur3", @"valeurCompteur4", @"valeurCompteur5", @"nomCompteur1", @"nomCompteur2", @"nomCompteur3", @"nomCompteur4", @"nomCompteur5", nil]; 

NSArray *objs = [NSArray arrayWithObjects: compteur1, compteur2, compteur3, compteur4, compteur5, nameC1, nameC2, nameC3, nameC4, nameC5, nil]; 
+0

請共享代碼。我們可能會建議一個比關閉ARC更好的選項。 – JeremyP

+0

哪一行發生錯誤? – JeremyP

+0

由「NSArray * objs」 – user2187565

回答

7

如果你想手動引用計數(使用保留和釋放),你可以在構建設置中禁用ARC。

在項目導航器中選擇項目。編輯區應該顯示一個包含四個選項卡的視圖:信息,構建設置,構建階段和構建規則。選擇構建設置。

在這四個標題的左邊,應該有一個下拉列表來選擇你想要的目標。選擇你不想要ARC的目標。

向下滾動以查找標題爲「Apple LLVM 5.0 - 語言 - Objective-C」的部分。在這裏有三個設置。最下面的應該是「Objective-C自動引用計數」。將其設置爲「否」,您將手動引用計數。

但是,修復報告的問題可能是更好的選擇。使用ARC比不使用更好。

修復錯誤

你說你在哪裏創建obis陣列線出現你的錯誤。這意味着一個或多個以下變量是int,而不是一個對象:

compteur1, compteur2, compteur3, compteur4, compteur5, nameC1, nameC2, nameC3, nameC4, nameC5 

如果你想要把一個整數到一個數組,你必須框它作爲一個NSNumber例如

NSArray* anArray = [NSArray arrayWithObjects: [NSNumber numberWithInt: 2], nil]; 

有寫作的簡寫形式,現在,它看起來像這樣:

NSArray* anArray = @[ @(2) ]; 
+0

謝謝,你有什麼建議來解決我沒有禁用弧的問題嗎? – user2187565

2

這裏是我建議的步驟如下:

  1. 選擇項目或plist中
  2. 去建立設置
  3. 選擇級別
  4. 向下滾動到對象的C,如屏幕顯示自動引用計數出手
  5. 從下拉菜單中選擇不下來反對