1

iPhone開発初心者です。私はxcode 4.2を使用しています。

保存ボタンをクリックすると、HTML ページから値を取得し、Web サービスがそれらを処理していて、エラーが発生します。

プログラム受信シグナル: EXC_BAD_ACCESS

私のWebサービス呼び出し機能で。これが私のコードです:

     NSString *val=[WebviewObj stringByEvaluatingJavaScriptFromString:@"save()"];
    NSLog(@"return value:: %@",val);
    [adict setObject:[NSString stringWithFormat:@"%i",userid5] forKey:@"iUser_Id" ];
    [adict setObject:[[val componentsSeparatedByString:@","]objectAtIndex:0] forKey:@"vImage_Url"];
    [adict setObject:[[val componentsSeparatedByString:@","]objectAtIndex:1] forKey:@"IGenre_Id"];
    [adict setObject:[[val componentsSeparatedByString:@","]objectAtIndex:2] forKey:@"vTrack_Name"];
    [adict setObject:[[val componentsSeparatedByString:@","]objectAtIndex:3] forKey:@"vAlbum_Name"];
    [adict setObject:[[val componentsSeparatedByString:@","]objectAtIndex:4] forKey:@"vMusic_Url"];
    [adict setObject:[[val componentsSeparatedByString:@","]objectAtIndex:5] forKey:@"iTrack_Duration_min"];
    [adict setObject:[[val componentsSeparatedByString:@","]objectAtIndex:6] forKey:@"iTrack_Duration_sec"];
    [adict setObject:[[val componentsSeparatedByString:@","]objectAtIndex:7] forKey:@"vDescription"];
    NSLog(@"dict==%@",[adict description]);

  NSString *URL2= @"http://184.164.156.55/Music/Track.asmx/AddTrack";
  obj=[[UrlController alloc]init];
  obj.URL=URL2;
  obj.InputParameters = adict;
  [obj WebserviceCall];
 obj.delegate= self;

       //this is my function..it is working for so many function calls
     -(void)WebserviceCall{


     webData = [[NSMutableData alloc] init];

  NSMutableURLRequest *urlRequest = [[ NSMutableURLRequest alloc ] initWithURL: [ NSURL URLWithString: URL ] ];

   NSString *httpBody = @"";
        for(id key in InputParameters)
        {
         if([httpBody length] == 0){
         httpBody=[httpBody stringByAppendingFormat:@"&%@=%@",key,[InputParameters valueForKey:key]];
    }
         else{
         httpBody=[httpBody stringByAppendingFormat:@"&%@=%@",key,[InputParameters valueForKey:key]];
          }
          }
       httpBody = [httpBody stringByAppendingFormat:httpBody];//Here i am getting  EXC_BAD_ACCESS 

        [urlRequest setHTTPMethod: @"POST" ];
     [urlRequest setHTTPBody:[httpBody dataUsingEncoding:NSUTF8StringEncoding]];
     [urlRequest setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"content-type"];


          NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:urlRequest delegate:self];



       }

誰でも私を助けてもらえますか?

前もって感謝します

4

1 に答える 1

1

stringByAppendingFormat(sprintf スタイルの) フォーマット文字列を最初の引数として期待し、次に % フォーマット プレースホルダーごとにもう 1 つの引数を期待します。例えば:

[httpBody stringByAppendingFormat:@"Integer: %d, String: %@", 1234, @"Hello"];

httpBody文字列に '%' の後に有効なフォーマット タイプ ('d'、'f'、'@' など) が続く場合、指定stringByAppendingFormatしていない追加の引数が必要になります。これらの引数を逆参照しようとすると、EXC_BAD_ACCESS が発生します。

あなたのコードのロジックを完全に理解していないので、その行で実際に何を意図していたのかわかりません。

于 2012-07-08T15:12:42.910 に答える