2

当我尝试删除之前保存在 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]];

有人有同样的问题吗?谢谢。

4

1 回答 1

1

deleteObjectsOfType:predicate:withCompletion:这是使用某些谓词(包括您指定的谓词)时的一个已知问题。您描述的解决方法是合适的。正如我在评论中提到的,您应该向 Apple 提交错误。

但是,请注意,[HKQuery predicateForObjectsFromSource:[HKSource defaultSource]]在删除对象时指定谓词是不必要的。您的应用程序只能删除自己的样本,因此提供与默认源中的样本匹配的谓词是多余的。

于 2015-09-10T18:20:49.333 回答