我让用户在 iPhone 的设置区域中更改其设置。在下一次网络同步期间,我想将用户更改发送到服务器。但前提是做出改变。
但是我如何知道用户何时在设置区域中进行了更改?
如果可以的话,我希望避免选择始终发送信息,无论是否更改,或者首先从服务器获取信息,如果与用户默认值不同,则进行更新。
有没有一个好的、优雅的方法来解决这个问题? 感谢您的帮助!
一周后,没有任何答复... 这个问题是太难了还是根本没有任何意义?
最佳答案
啊,我真傻!在这里,我们以一种优雅的方式进行。在 XCode 内的 Apple 文档中搜索 AppPrefs,它将显示一个示例应用程序,它完全可以满足您的要求。只需编译并运行即可!它利用NSUserDefaultsDidChangeNotification 。
这是用于注册观察者的代码:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(defaultsChanged:)
name:NSUserDefaultsDidChangeNotification
object:nil];
<小时/>
旧答案:
看起来您无法从 NSUserDefaults 中获取修改日期。目前我只能想到这样:
NSUserDefaults *previousDefaults = [someInstance previousUserDefaults];
NSUserDefaults *currentDefaults = [NSUserDefaults standardUserDefaults];
if([previousDefaults isEqualToDictionary:currentDefaults])
{
[someOtherInstance sendModifiedUserDefaultsToServerWithDefaults:currentDefaults];
[yetAnotherInstance saveModified]
}
当应用程序第一次启动时,您必须将用户默认值作为字典保存到磁盘:您的默认值。然后,每次打开应用程序时,您都会比较这两个词典。如果他们
关于iphone - 如何知道用户何时更改设置包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5482573/