Xamarin 中的 HKErrorDomain(HealthKit 错误域)常量

HKErrorDomain (HealthKit Error Domain) Constant in Xamarin

我正在为我的 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 相关的错误,我找不到任何应该在 error.Domain 中的常量。 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 中存在一个常量时。我是不是遗漏了什么或者这是我唯一的选择?

Xamarin 的 Bugzilla 上现在有一个 bug 来揭示这个常量:

https://bugzilla.xamarin.com/show_bug.cgi?id=34140