这是我的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 = @“Kellie”。
出于某种原因,staffNamesArray永远不会被设置。为什么呢?
答案 0 :(得分:3)
最可能的问题是这一行:
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