Я боролся с лучшим способом создания, доступа и обновления значений из динамического логического массива уже более недели.
@interface myDelegate : NSObject
{
NSMutableArray *aShowNote;
}
@property (nonatomic, copy) NSMutableArray *aShowNote;
Вот как я инициализировал свой массив:
NSMutableArray *aShow = [[NSMutableArray alloc] init];
for (i=0; i < c; i++)
[aShow addObject:[NSNumber numberWithBool:false]];
self.aShowNote = aShow;
Кажется, это работает нормально, но я сбит с толку, почему каждый элемент инициализируется с одинаковым адресом.
Но то, что я обнаружил в своих исследованиях, так это то, что вам нужно заменить объект, если вы хотите изменить его значение:
myDelegate *appDelegate = (myDelegate *)[[UIApplication sharedApplication] delegate];
NSInteger recordIndex = 1;
NSNumber *myBoolNo = [appDelegate.aShowNote objectAtIndex:recordIndex];
BOOL showNote = ![myBoolNo boolValue];
[appDelegate.aShowNote replaceObjectAtIndex:recordIndex withObject:[NSNumber numberWithBool:showNote]];
но этот подход кажется слишком сложным (и он тоже дает сбой).
Завершение приложения из-за необработанного исключения «NSInvalidArgumentException», причина: '- [__ NSArrayI replaceObjectAtIndex: withObject:]: нераспознанный селектор, отправленный экземпляру 0x5b51d00
Любые указатели для улучшения этого кода (и, конечно, для его работы) будут очень благодарны.
Спасибо
Iphaaw