可以在 NSUserDefaults 中保留 HKQueryAnchor 吗?
Possible to persist HKQueryAnchor in NSUserDefaults?
所以我有点沮丧,Apple 已经用 HKQueryAnchor
替换了透明、易于处理的 NSUInteger
,但没有提供一种简单的方法来坚持 HKQueryAnchor
.有没有人找到使用 NSUserDefaults
执行此操作的好方法?我见过的唯一持久化方法是 archiver to a local file,但我的应用程序将所有内容都持久化在 NSUserDefaults
中,如果可能,我希望保持这种方式。有没有一种可靠的方法来以这种方式存储 HKQueryAnchor
?
您可以使用 NSKeyedArchiver
将其转换为 NSData
并将其存储在用户默认值中。
要存储:
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:anchor];
[[NSUserDefaults standardUserDefaults] setObject:data forKey:@"AnchorData"];
检索:
NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:@"AnchorData"];
HKQueryAnchor *anchor = [NSKeyedUnarchiver unarchiveObjectWithData:data];
所以我有点沮丧,Apple 已经用 HKQueryAnchor
替换了透明、易于处理的 NSUInteger
,但没有提供一种简单的方法来坚持 HKQueryAnchor
.有没有人找到使用 NSUserDefaults
执行此操作的好方法?我见过的唯一持久化方法是 archiver to a local file,但我的应用程序将所有内容都持久化在 NSUserDefaults
中,如果可能,我希望保持这种方式。有没有一种可靠的方法来以这种方式存储 HKQueryAnchor
?
您可以使用 NSKeyedArchiver
将其转换为 NSData
并将其存储在用户默认值中。
要存储:
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:anchor];
[[NSUserDefaults standardUserDefaults] setObject:data forKey:@"AnchorData"];
检索:
NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:@"AnchorData"];
HKQueryAnchor *anchor = [NSKeyedUnarchiver unarchiveObjectWithData:data];