问题描述
在MKReverseGeocoder的回调中添加了针对错误代码的测试后,出现了链接器错误,指示未定义_MKErrorDomain:
After adding a test for error code to MKReverseGeocoder's callback, got a linker error indicating that _MKErrorDomain is not defined:
- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFailWithError:(NSError *)error {
// some useful but irrelevant code removed here...
// if the error is not permanent, try again
NSString *errorDomain = [error domain];
NSInteger errorCode = [error code];
if ([errorDomain isEqualToString:MKErrorDomain] && errorCode != MKErrorPlacemarkNotFound) {
[self scheduleReverseLookup];
}
}
链接器错误:
Undefined symbols for architecture armv6:
"_MKErrorDomain", referenced from:
-[Tracker reverseGeocoder:didFailWithError:] in Tracker.o
请注意,已将MapKit链接到其中,并且在删除MKErrorDomain的测试中可以正常工作.
Note that MapKit is being linked in and works fine with the test for MKErrorDomain removed.
推荐答案
在最新的iOS 4.3/Xcode 4.0.1中,我遇到了同样的问题,对于arvm7
也是如此.
I have the same issue, which is also true for arvm7
, with latest iOS 4.3 / Xcode 4.0.1.
好像<MapKit/MKTypes.h>
在MapKit二进制文件中缺少了他的弟弟MKTypes.o
...
Looks like <MapKit/MKTypes.h>
is missing his little brother MKTypes.o
in MapKit binary...
无论如何,一种快速(且肮脏的)解决方法是使用@"MKErrorDomain"
而不是MKErrorDomain
常量.
Anyway, a quick (and dirty) fix is to use @"MKErrorDomain"
instead of the MKErrorDomain
constant.
或者更好一点,无论如何以后都将其修复,或者如果您经常引用它,则可以重新定义它:
Or a little bit better, in any case this is fixed later, or if you reference it a lot, you can redefine it :
#define MKErrorDomain @"MKErrorDomain"
这篇关于链接器找不到MKErrorDomain的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!