无法在 NSUbiquitousKeyValueStore 中设置数组
Unable to set array in 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 = @"Kellie"。
出于某种原因,staffNamesArray 从未设置。为什么?
最有可能的问题是这一行:
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
这是我的 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 从未设置。为什么?
最有可能的问题是这一行:
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