0

Kumulosを使用してデータベースに情報を送信しています。残念ながら、submitメソッドを機能させることができません。

このアプリはXcodeのObjective-Cで書かれています

Kumulos.hKumulos.mlibKumulos.hlibKumulos_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単なるオブジェクトです。

これらは私didCompleteWithResultdidFailWithError方法です:

-(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ですか?そのエラーメッセージを印刷できるようにしたいと思います。

4

2 に答える 2

0

didFailWithErrorデリゲートメソッドに対しても何も返されないことを除いて、私は同様の状況にあるようです。kumulos.mファイルにログを追加しました。これはあなたを助けるかもしれませんが、それはまだ私をどこにも導きませんでした。kumulos.mファイルでsubmitToDbWithLatitudeメソッドを探し[newOp setDebugMode:YES];、KSAPIOperationが初期化された後に追加します。

プロジェクトを実行すると、より詳細な結果が得られます。役立つかもしれません。マイク

于 2012-12-26T20:30:28.717 に答える
0

それは私がいたネットワークの問題になってしまいました。このエラーが発生したのは、インターネットがないデバイスをシミュレートするために、wifiを無効にし、wifiを再度有効にしたときに、NTLM認証に合格するためのユーザー名/パスワードを再入力しなかったためです。

于 2013-01-03T20:29:02.463 に答える