将objective-c指针类型nsstring隐式转换为cpointer类型'CFTypeRef'

时间:2012-11-19 04:52:33

标签: iphone ios casting

我正在使用this link来存储联系信息,在我看来,ARC存在一些问题。

当我使用下面的代码时,它工作正常。

ABAddressBookRef libroDirec = ABAddressBookCreate();

ABRecordRef persona = ABPersonCreate();

ABRecordSetValue(persona, kABPersonFirstNameProperty, @"JustTESTING", nil);

另一方面,当我使用下面的代码时,它给出了错误将objective-c指针类型nsstring隐式转换为cpointer类型'CFTypeRef'

NSString * prefName = ref.fName; 

ABAddressBookRef libroDirec = ABAddressBookCreate();

ABRecordRef persona = ABPersonCreate();

ABRecordSetValue(persona, kABPersonFirstNameProperty, prefName, nil);// error in prefName

由于

1 个答案:

答案 0 :(得分:1)

你需要添加一个演员来让ARC开心:

ABRecordSetValue(persona, kABPersonFirstNameProperty, (__bridge CFTypeRef)prefName, nil);

prefNameNSString *,第3个参数需要CFTypeRef