Благодаря этому вопросу / ответу Автоматический подсчет ссылок: ошибка с быстрым перечислением Я решил часть того, что сводит меня с ума.
Тем не менее, я все еще получаю сообщение об ошибке " Присвоение 'NSDictionary * __ strong ' '__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];
}