0

Xcode(4.4.1)でiOS(5.1)アプリを構築していて、開発の最初のフェーズはほぼ完了していますが、コードの最終行で立ち往生しています。私はバックエンドとAPIソリューションとしてKumulosを使用してきましたが、現時点では、このビットを除いてすべてのAPIが正常に機能しています。

Kumulos* k = [[Kumulos alloc]init];
[k setDelegate:self];
[k createNewTimePointWithJourneyIDFK:[journeyID integerValue]
    andTime:currentDate andLat:[lat floatValue] andLon:[lon floatValue]];

createNewTimePointWithJourneyIDFK:メソッドにヒットすると、終了します。ログには、このメソッドが記載されており、認識されないセレクターがインスタンスに送信されたことが示されています。

この質問はSOで何百万回も聞かれていることに気付きましたが、1)メソッドが定義されていること、2)正しく呼び出されていること(または少なくとも私の知る限り)を確認しました。上記の方法は、残りのAPI呼び出しを行った方法であり、それらはうまく機能するため、問題が何であるかがわかりません。非常にイライラします、私はこの最後の行に何時間も費やしました!だから、何をすべきかわからない数分後に私が聞いたとは思わないでください。

エラーメッセージ

2012-08-11 22:36:58.769 busApp4Kumulos[5485:707] -[Kumulos
createNewTimePointWithJourneyIDFK:andTime:andLat:andLon:]:
unrecognizedselector sent to instance 0x3d1b70 2012-08-11 22:36:58.778
busApp4Kumulos[5485:707]
*** Terminating app due to uncaught exception
'NSInvalidArgumentException', reason: '-[Kumulos
createNewTimePointWithJourneyIDFK:andTime:andLat:andLon:]:
unrecognized selector sent to instance 0x3d1b70'
*** First throw call stack:
(0x35add88f 0x37e84259 0x35ae0a9b 0x35adf915 0x35a3a650 0x3ef5
0x37f86de3 0x37f86785 0x37f80e3f 0x35ab1b01 0x35ab112f 0x35ab0351
0x35a334a5 0x35a3336d 0x376cf439 0x3353fcd5 0x2dd9 0x2d74)
terminate called throwing an exception(lldb) 

方法

これはKumulos.mファイルにあります。

-(KSAPIOperation*) createNewTimePointWithJourneyIDFK:(NSInteger)journeyIDFK
     andTime:(NSDate*)time andLat:(float)lat andLon:(float)lon{

 NSMutableDictionary* theParams = [[NSMutableDictionary alloc]init];
        [theParams setValue:[NSNumber numberWithInt:journeyIDFK] forKey:@"journeyIDFK"];
                [theParams setValue:time forKey:@"time"];
                [theParams setValue:[NSNumber numberWithFloat:lat] forKey:@"lat"];
                [theParams setValue:[NSNumber numberWithFloat:lon] forKey:@"lon"];

KSAPIOperation* newOp = [[KSAPIOperation alloc]initWithAPIKey:theAPIKey
     andSecretKey:theSecretKey andMethodName:@"createNewTimePoint"
     andParams:theParams];
[newOp setDelegate:self];
[newOp setUseSSL:useSSL];

//we pass the method signature for the kumulosProxy callback on this thread

[newOp setCallbackSelector:@selector( kumulosAPI: apiOperation: createNewTimePointDidCompleteWithResult:)];
[newOp setSuccessCallbackMethodSignature:[self methodSignatureForSelector:@selector(apiOperation: didCompleteWithResult:)]];
[newOp setErrorCallbackMethodSignature:[self methodSignatureForSelector:@selector(apiOperation: didFailWithError:)]];
[opQueue addOperation:newOp];

return newOp;
}
4

1 に答える 1

3

私が考えることができる唯一のことは、あなたのプロジェクトで何かが古くなったということです。クリーニング([製品] → [クリーニング]を使用)と再構築を試しましたか?

于 2012-08-11T13:11:52.080 に答える