小编Tim*_*imF的帖子

ABAddressBookGetPersonCount在iOS中返回-1

我遇到ABAddressBookGetPersonCount返回-1的情况.测试人员向我保证地址簿中存在联系人.所有手机都运行iOS 6.0.1.

这是代码:

NSMutableDictionary *myAddressBook = [[NSMutableDictionary alloc] init];
ABAddressBookRef addressBook = ABAddressBookCreate();
CFArrayRef people  = ABAddressBookCopyArrayOfAllPeople(addressBook);
int numEntries = ABAddressBookGetPersonCount(addressBook);
if (numEntries == 0)
{
    NSString *title = NSLocalizedString(@"error", nil);
    NSString *description =  NSLocalizedString(@"error_empty_contacts", nil);
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:title
                                                    message:description
                                                   delegate:self
                                          cancelButtonTitle:@"OK"
                                          otherButtonTitles:nil];
    [alert show];


    return;
}

NSLog(@"emails: found %d", numEntries);
Run Code Online (Sandbox Code Playgroud)

我无法在我的任何手机上重现这一点,但测试人员尝试过3部手机.它适用于iPhone 5,但不适用于4或3;

我找不到任何表明值为-1的文档.我假设它是某种错误,但是什么?

objective-c ios

5
推荐指数
1
解决办法
1305
查看次数

是否可以在没有CancellationToken的情况下取消C#任务?

我需要取消返回任务的API调用,但它不会将CancellationToken作为参数,我不能添加一个.

我该如何取消该任务?

在这种特殊情况下,我正在使用带有Geocoder对象的Xamarin.Forms.

 IEnumerable<Position> positions = await geo.GetPositionsForAddressAsync(address); 
Run Code Online (Sandbox Code Playgroud)

这个电话有时需要很长时间.对于我的一些用例,用户可以只导航到另一个屏幕,并且不再需要该任务的结果.

我也担心我的应用程序会进入休眠状态,并且没有停止长时间运行的任务,或者任务完成并且需要不再有效的代码.

c# task-parallel-library .net-4.5 xamarin xamarin.forms

5
推荐指数
1
解决办法
3579
查看次数