Xamarin 中的 HKErrorDomain(HealthKit 错误域)常量
Posted
技术标签:
【中文标题】Xamarin 中的 HKErrorDomain(HealthKit 错误域)常量【英文标题】:HKErrorDomain (HealthKit Error Domain) Constant in Xamarin 【发布时间】:2015-09-18 20:21:32 【问题描述】:当我的 HealthKit 客户端请求 Xamarin ios 中的数据权限时,我正在编写一些错误处理。我这样提出请求:
public HKClient()
var HealthKitStore = new HKHealthStore();
HealthKitStore.RequestAuthorizationToShare (dataTypesToWrite, dataTypesToRead, OnHealthPermissionsCompleted);
void OnHealthPermissionsCompleted (bool success, NSError error)
//Parse error.Domain and error.Code herere
在我的 OnHealthPermissionsCompleted 中,我想解析 NSError 以调试我们的请求失败的原因。首先要做的是检查 error.Domain 以确保它是 HealthKit 错误,然后将 error.Code 与 HKErrorCode 枚举中的常量进行比较。问题是,我找不到任何应该出错的常量。HealthKit 相关错误的域。 Apple 文档说应该有一个名为“HKErrorDomain”的常量供我比较,但它在 Xamarin 中不存在。 https://developer.apple.com/library/prerelease/watchos/documentation/HealthKit/Reference/HealthKit_Constants/index.html#//apple_ref/doc/constant_group/Health_Kit_Error_Domain
https://developer.xamarin.com/api/namespace/HealthKit/
如果我强制出错,然后在调试器中检查它,我会看到 error.Domain = "com.apple.healthkit"。我可以与那个字符串进行比较,
void OnHealthPermissionsCompleted (bool success, NSError error)
if(!success && error.Domain == "com.apple.healthkit")
//continue parsing...
但是在这些东西中加入魔法字符串让我感到恶心,尤其是当我知道原生 iOS 中存在一个常量时。我在这里遗漏了什么还是这是我唯一的选择?
【问题讨论】:
【参考方案1】:现在在 Xamarin 的 Bugzilla 上提交了一个错误来显示此常量:
https://bugzilla.xamarin.com/show_bug.cgi?id=34140
【讨论】:
以上是关于Xamarin 中的 HKErrorDomain(HealthKit 错误域)常量的主要内容,如果未能解决你的问题,请参考以下文章
Visual Studio 中的 xamarin 是不是在 xamarin.form 中提供拖放功能?
无法使用 Xamarin.Android 中的 Xamarin.Mobile 组件保存联系人
Xamarin Studio 中的类型或命名空间名称“Xamarin”缺失错误
Xamarin 是不是支持 Xamarin Android 绑定库中的 Kotlin 协程?
Xamarin.Forms 无法更改本地设备上 Xamarin.iOS 中的应用程序图标
有没有办法使用 Xamarin.Forms PCL 项目中的 Devexpress.Xamarin.Android.Charts