我有一個for循環,然後通過迭代對象與一個按地址PARAM的方法,並得到了以下錯誤:ObjC/ARC的ByRef在循環
Implicit conversion of an Objective-C pointer to 'FOO *__autoreleasing *' is disallowed with ARC
和警告:
Incompatible pointer types sending 'Foo *const __strong' to parameter of type 'Foo *__autoreleasing *'
的循環:
for (Foo *obj in objArray) {
FooTableCell *newCell = [self createFooCellWithItem:obj];
}
方法簽名:
-(FooTableCell *)createFooCellWithItem:(Foo **)newObj;
我按照this SO q&a的建議無濟於事。
編輯
前面加上一個& OBJ給我下面的錯誤之前:
Sending 'Foo *const __strong *' to parameter of type 'Foo *__autoreleasing *' changes retain/release properties of pointer
我試過了,我得到以下錯誤:將'Foo * const __strong *'發送給'Foo * __ autoreleasing *'類型的參數會改變指針 – sbonami
的保留/釋放屬性。嘗試在我的編輯中建議使用橋樑 – sergio
現在ARC只是一個痛苦:不兼容的類型將'Foo * const __strong *'轉換爲'Foo * __ strong *'與__bridge轉換 – sbonami