【发布时间】:2012-03-18 22:33:06
【问题描述】:
这听起来可能是一个新手问题,但我是新的 iOS 开发者,
最近我切换到 ARC 并且在我的代码中遇到了以下问题。我已经用下面的 init 方法实现了一个类
- (id)init
{
self = [super init];
if (self) {
TokenManager* tokenManager = [[TokenManager alloc] initWithApikey:<my valid token>];
mRequest = [[GeoCodingRequest alloc] initWithApikey:apiKey withOptions:nil tokenManager:tokenManager];
mRequest.delegate = self;
}
return self;
}
接口中的mRequest 声明如下__strong GeoCodingRequest* mRequest;
在同一类的其他方法中,我像这样向mRequest 发送消息
[mRequest findObject:<some valid array> around:<some valid location> withDistance:<some valid radius>];
当消息发送到对象应用程序崩溃并显示以下消息
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFString appendRequestWithToken:]: unrecognized selector sent to instance 0x8974640'
findObject: around: withDistance: - 是来自公共库的方法,所以我无法访问它的实现。
请帮助我理解为什么会发生这种崩溃?! 我猜它来自 ARC _strong/_weak 限定符的使用或 smth。
【问题讨论】:
-
搜索 NSZombieEnabled - 这个错误几乎总是由向一个对象发送一个错误的方法引起的,当一个对象被释放并且另一个对象被分配在同一位置时,这又会发生
标签: objective-c ios ios5 automatic-ref-counting