这样调用可以吗?
[[[NSUserDefaults standardUserDefaults] objectForKey:@"searchEnginesOrder"] addObject:@"eBay"];
我有一个 UITableView
,我想直接从默认值加载它的单元格,我还想修改这些默认值。我想知道上面的行是否真的有任何效果(当我 NSLog
默认数组 searchEngineOrder
为空时,我想知道是否是因为上面的代码不是实际上添加到默认值。
最佳答案
一般来说,那行代码会崩溃。用户默认返回不可变对象(immutable对象),因此调用 addObject:
将引发异常。
您也不应该依赖对返回的对象所做的更改返回到数据存储中 - 这不是特定于用户默认值的,它适用于任何未将其记录为受支持的 API。
您应该通过定义的修改和保存点将工作数据和存储数据之间的逻辑分开。确保您可变复制从用户默认值中提取的数据。您还应该使用 registerDefaults:
设置初始值,这样您就不需要检查是否存在。
关于ios - 默认情况下直接添加到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21600270/