ABCreateStringWithAddressDictionary隐式声明

时间:2015-01-30 03:28:47

标签: ios objective-c

当我使用这行代码时

NSString *address = ABCreateStringWithAddressDictionary(placemark.addressDictionary, NO);

我收到了这个错误

Implicit declaration of function 'ABCreateStringWithAddressDictionary' is invalid in C99

奇怪的是,对于iOS7,它不会触发错误,而对于iOS8则不会。

有没有人遇到同样的问题?

1 个答案:

答案 0 :(得分:3)

我可以重现该问题的唯一方法是忘记导入AddressBookUI框架。换句话说,如果我这样说,它会编译:

@import AddressBookUI;
@import CoreLocation;
@implementation Thing
- (void) test {
    CLPlacemark* p = [CLPlacemark new];
    NSString *address = ABCreateStringWithAddressDictionary(p.addressDictionary, NO);
}
@end

但如果我注释掉第一个@import行,我就会收到你的错误。这是你犯的错误吗?