当我尝试删除之前保存在 HealthKit 中的一些记录时,如果我使用 -deleteObjectsOfType:predicate:withCompletion:
会出错。错误说:
Error Domain=NSCocoaErrorDomain Code=4097 "connection to service named com.apple.healthd.server" UserInfo={NSDebugDescription=connection to service named com.apple.healthd.server}
但是如果我首先使用相同的类型和谓词查询记录,然后使用 -deleteObjects:withCompletion:
删除返回的样本。它有效。
如果有帮助,这里是类型和谓词:
HKCategoryType *type = [HKCategoryType categoryTypeForIdentifier:HKCategoryTypeIdentifierMenstrualFlow];
NSPredicate *predicate = [HKQuery predicateForObjectsFromSource:[HKSource defaultSource]];
有人遇到过同样的问题吗?谢谢。
这是使用某些谓词(包括您指定的谓词)时 deleteObjectsOfType:predicate:withCompletion:
的一个已知问题。您描述的解决方法是合适的。正如我在评论中提到的,您应该向 Apple 提交错误。
但请注意,删除对象时不需要指定谓词[HKQuery predicateForObjectsFromSource:[HKSource defaultSource]]
。您的应用只能删除自己的样本,因此提供与默认源中的样本匹配的谓词是多余的。
关于iOS 9 删除 HealthKit 中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32131869/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |