视图控制器URL请求和连接正确完成后崩溃

我的应用程序进入一个视图控制器,使两个自动服务器请求,使连接,检索数据并正确显示它,并完成。 用户点击一个“喜欢”button,另外两个服务器请求成功。 显示是正确的。 需要被完成。 然后崩溃,错误:

[__NSCFNumber isEqualToString:]: unrecognized selector sent to instance 

我使用了非常方便的SimplePost类(Nicolas Goles)。 这是我的请求,这两个请求都在viewDidLoad中调用:

 - (void) setScore { Profile *newPf = [[Profile alloc] initID:thisUser profil:@"na" scor:score]; NSMutableURLRequest *reqPost = [SimplePost urlencodedRequestWithURL:[NSURL URLWithString:kMyProfileURL] andDataDictionary:[newPf toDictPf]]; (void) [[NSURLConnection alloc] initWithRequest:reqPost delegate:self]; } - (void) saveHist { History *newH = [[History alloc] initHistID:thisUser hQid:thisQstn hPts:score hLiked:NO]; NSMutableURLRequest *reqHpost = [SimplePost urlencodedRequestWithURL:[NSURL URLWithString:kMyHistURL] andDataDictionary:[newH toDictH]]; (void) [[NSURLConnection alloc] initWithRequest:reqHpost delegate:self]; } 

我的自定义类(Profile和History)中唯一的“新”事物是hLiked的BOOL,但它“正在工作” – 数据库正在更新。
然后,用户可以点击“喜欢”button(+或 – )。 以下是其他要求:

 - (IBAction)likeClick:(id)sender { double stepperValue = _likeStepper.value; _likesLbl.text = [NSString stringWithFormat:@"%.f", stepperValue]; [self updateLikes]; [self updateHist]; } - (void) updateLikes { // update the question with the new "liked" score NSInteger likesN = [_likesLbl.text integerValue]; Questn *qInfo = [[Questn alloc] initQwID:thisQstn askID:0 wCat:@"na" wSit:@"na" wAns1:@"na" wPts1:0 wAns2:@"na" wPts2:0 wAns3:@"na" wPts3:0 wAns4:@"na" wPts4:0 wJust:@"na" wLikes:likesN ]; NSMutableURLRequest *reqPost = [SimplePost urlencodedRequestWithURL:[NSURL URLWithString:kLikesURL] andDataDictionary:[qInfo toDictQ]]; (void) [[NSURLConnection alloc] initWithRequest:reqPost delegate:self]; } - (void) updateHist { History *newH = [[History alloc] initHistID:thisUser hQid:thisQstn hPts:98989 hLiked:YES]; NSMutableURLRequest *reqHpost = [SimplePost urlencodedRequestWithURL:[NSURL URLWithString:kHistURL] andDataDictionary:[newH toDictH]]; (void) [[NSURLConnection alloc] initWithRequest:reqHpost delegate:self]; } 

凌乱,对吧? 这是我的连接代码:

 // connection to URL finished with Plist-formatted user data array returned from PHP - (void) connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { NSDictionary *array = (NSDictionary *)[NSPropertyListSerialization propertyListFromData:data mutabilityOption:NSPropertyListImmutable format:0 errorDescription:nil]; BOOL keyLikeExists = [array objectForKey:@"likes"] != nil; if( keyLikeExists ) { _likesLbl.text = [array objectForKey:@"likes"]; } } - (void) connection:(NSURLConnection *)connection didFailWithError:(NSError *)error { NSLog(@"Connection did fail." ); } 

这一切都做得很好,然后几秒钟后,它崩溃了上面提到的“无法识别的select器”的错误,就像仍然有一些URL活动发生。 不应该有。

有人看过这种东西吗? 非常感谢您的帮助!

在你的代码中有一个调用方法isEqualToString: 发送消息的东西是一个NSNumber对象,而不是一个string。 或者存在关于对象types的逻辑问题,或者存在内存问题,其中string被过度释放,并且其内存被重新用于保存数字。

没有看到通话的上下文,很难猜测。

如果你打破了exception,堆栈跟踪应该告诉你代码在哪里失败。