Невозможно установить массив в NSUbiquitousKeyValueStore
Это мой код Obj-C:
NSMutableArray *staffNamesArray = [[[NSUbiquitousKeyValueStore defaultStore] arrayForKey:@"staffNamesArray"] mutableCopy];
NSInteger indexSelected = [oStaffPickerView selectedRowInComponent:0];
[staffNamesArray replaceObjectAtIndex:indexSelected withObject:textField.text];
[[NSUbiquitousKeyValueStore defaultStore] setArray: staffNamesArray forKey:@"staffNamesArray"]; // save it to the cloud
[[NSUbiquitousKeyValueStore defaultStore] synchronize];
IndexSelected равно 0; textfield.text = @"Келли".
По какой-то причине, staffNamesArray никогда не устанавливается. Зачем?
1 ответ
Решение
Наиболее вероятная проблема - эта строка:
NSMutableArray *staffNamesArray = [[[NSUbiquitousKeyValueStore defaultStore] arrayForKey:@"staffNamesArray"] mutableCopy];
Это приведет к staffNamesArray
являющийся nil
если нет данных. Вы должны проверить это и создать массив по мере необходимости:
NSMutableArray *staffNamesArray = [[[NSUbiquitousKeyValueStore defaultStore] arrayForKey:@"staffNamesArray"] mutableCopy];
if (!staffNamesArray) {
staffNamesArray = [NSMutableArray array];
}
// and the rest of your code