感謝這個問題/答案Automatic Reference Counting: Error with fast enumeration我解決了一部分讓我瘋狂的東西。快速枚舉NSDictionary的錯誤
不過,我仍然得到一個錯誤「分配‘的NSDictionary * __強’到‘__unsafe_unretained ID’改變保留指針的/釋放屬性」。我已經閱讀了ARC編程指南和與指針轉換相關的部分,但不幸的是,我還不是一個好的c程序員。
查看帶註釋的代碼行。任何幫助將非常感激。提前致謝。
- (NSUInteger) countByEnumeratingWithState: (NSFastEnumerationState *)state
objects: (id __unsafe_unretained *)buffer
count: (NSUInteger)bufferSize
{
if (*enumRows = [self getPreparedRow]) {
state->itemsPtr = enumRows; // Assigning 'NSDictionnary *__strong *' to '__unsafe_unretained id*' changes retain/release properties of pointer
state->state = 0;
state->mutationsPtr = &state->extra[0]; // was state->mutationsPtr = (unsigned long *) self; before
return 1;
} else {
return 0;
}
}
本宣言所.h文件
@interface BWDB : NSObject <NSFastEnumeration> {
NSDictionary * enumRows[1];
}
'id'已經是一個指針。 –