0

我收到一个错误:

C 指针类型“ABRecordRef”(又名“const void *”)到 Objective-C 指针类型“id”的隐式转换需要桥接强制转换

从此代码中,尝试将一个添加ABRecordRefNSMutableArray

ABRecordRef person = (__bridge ABRecordRef)[contactArr objectAtIndex:i];
[addressBookArray addObject:person];

addressBookArray定义为

NSMutableArray *addressBookArray;
4

1 回答 1

5

正如错误消息所说,您需要重新转换对象才能将其放回NSMutableArray

ABRecordRef person = (__bridge ABRecordRef)[contactArr objectAtIndex:i];
[addressBookArray addObject:(__bridge ABRecord *)person];

ABRecord是对应的 ObjC 类ABRecordRef;它们是免费桥接的,因此可以为此目的互换。


注意: ABRecord仅在 OS X 上可用。如果您在 iOS 上并且设法以某种方式首先将这些ABRecordRefs 放入 anNSArray中,您将不得不使用idre-cast

[addressBookArray addObject:(__bridge id)person];
于 2012-05-02T19:33:14.503 回答