Kumulosを使用してデータベースに情報を送信しています。残念ながら、submitメソッドを機能させることができません。
このアプリはXcodeのObjective-Cで書かれています
Kumulos.h、Kumulos.m、libKumulos.h、libKumulos_iOS_.0.7.4.aをプロジェクトにコピーしました。
私のviewDidLoad
中には:
k = [[Kumulos alloc]init];
[k setDelegate:self];
次に、次のようにして、別のスレッドでsubmitメソッドを呼び出します。
- (IBAction)submit:(UIButton *)sender
{
[loader startAnimating];
[NSThread detachNewThreadSelector:@selector(SubmittoDB) toTarget:self withObject:nil];
}
これは別のスレッドでこのメソッドを呼び出します:
-(void)SubmittoDB
{
NSDate *date=[NSDate date];
Transporter *T = [Transporter shared];
[k submitToDbWithLatitude:[T getlat]
andLongitude:[T getlon]
andFirstName:[T getfirstname]
andLastName:[T getlastname]
andEmailAddress:[T getemail]
andPhoneNumber:[T getphone]
andDateReported:date
andPoleNumber:@"NULL"
andOther:othertext.text
andProblem:[T getproblem]];
}
オブジェクトは、情報を保持していたT
単なるオブジェクトです。
これらは私didCompleteWithResult
のdidFailWithError
方法です:
-(void) kumulosAPI:(Kumulos *)kumulos apiOperation:(KSAPIOperation *)operation submitToDbDidCompleteWithResult:(NSNumber *)newRecordID
{
[self performSelectorOnMainThread:@selector(segue) withObject:nil waitUntilDone:false];
}
-(void) kumulosAPI:(kumulosProxy *)kumulos apiOperation:(KSAPIOperation *)operation didFailWithError:(NSString *)theError
{
errormessage=theError;
[self performSelectorOnMainThread:@selector(error) withObject:nil waitUntilDone:false];
}//failwitherror
アップデート
-(void)segue
{
[loader stopAnimating];
[self performSegueWithIdentifier:@"uploaderdebrief" sender:self];
}//segue
-(void)error
{
[loader stopAnimating];
UIAlertView *nope = [[UIAlertView alloc]initWithTitle:@"Error"
message:errormessage
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[nope show];
}
失敗メソッドは毎回実行されますが、NSString "theError"は常にnilであるため、何が問題になっているのかわかりません。Kumulos WebサイトのkumulosダッシュボードからこのAPIメソッドを実行すると、データベースにデータを正常に送信できます。
誰かが何が起こっているのか考えていますか?どんな助けでもありがたいです。また、みんなが良いクリスマスを過ごしたことを願っています(それがあなたのものなら)
編集
私はもう少し早くブレークマークを付けました、そして私はNSString theError
言うことを見つけました、Variable is not a CFString
そしてそれから私が別のステップを踏むならばそれはに戻りますnil
。それが参照している変数を見つける方法はありますか?また、なぜtheError
元に戻るのnil
ですか?そのエラーメッセージを印刷できるようにしたいと思います。