我正在尝试访问Xamarin.iOS应用中的地址簿,我试过这段代码:
var addressBook = AddressBook.ABAddressBook.Create(out NSError error);
if (addressBook != null)
{
addressBook.RequestAccess((bool granted, NSError accessError) =>
{
if (granted)
{
//Do something
}
});
}
此代码运行到if
,adressBook
不为空。但是addressBook.RequestAccess(...)
没有运行,应用程序退出而没有落入catch
子句。
有谁知道这段代码有什么问题?如何检测此类错误,在哪里查找日志或其他内容?
我在连接到Mac和iPhone 6的Windows 10上的Visual Studio 2017中使用Xamarin
答案 0 :(得分:6)
您是否在info.plist中包含了NSContactsUsageDescription键?
例如:
<key>NSContactsUsageDescription</key>
<string>Your explanation to the user</string>
不这样做通常会导致无声崩溃。
另请注意,自iOS 9起,地址簿API已被弃用,而有利于Contacts Framework。所以你可能想要实现那个。