0
- (void)viewDidLoad
{ 

    binding.logXMLInOut = YES;  // to get logging to the console.

    StationDetailsJsonSvc_getAvailableStations *request = [[StationDetailsJsonSvc_getAvailableStations new] autorelease];
    request.userName=@"twinkle"; 
    request.password=@"twinkle";  



    StationDetailsJsonSoap11BindingResponse  *resp = [binding getAvailableStationsUsingParameters:request];
    for (id mine in resp.bodyParts)
    {
        if ([mine isKindOfClass:[StationDetailsJsonSvc_getAvailableStationsResponse class]])
        {
           resultsring = [mine return_];
             NSLog(@"list string is%@",resultsring);
        }
    }


#pragma mark parsing


    SBJsonParser *parserq = [[SBJsonParser alloc] init];


    //if successful, i can have a look inside parsedJSON - its worked as an NSdictionary and NSArray

    results= [parserq objectWithString:resultsring error:nil];

   NSLog(@"print %@",results);

    for (status in results)
    { 



        NSLog(@"%@ ",[status objectForKey:@"1" ]);

       events=[status objectForKey:@"1"];
       NSLog(@"get%@",events);






       NSLog(@"events%@",events);

    }



    events=[status objectForKey:@"1"];
    NSLog(@"post%@",events);

    self.navigationController.navigationBarHidden=YES;


    [whethertableview reloadData];

    [super viewDidLoad];

}

これは私のコードで、アプリを実行するとテーブルビューのコンテンツが取得されず、[NSCFString count]:unrecognized セレクターがインスタンスに送信されてクラッシュする

4

2 に答える 2

1

あなたは頼りになるべきではありませんNSStringが、arrays

[yourString length]文字列に何かがあるかどうかを確認するために呼び出す必要があります。

アプリをクラッシュさせている文字列の数を取得しようとしています

于 2013-03-20T12:51:13.397 に答える
0

このコードでさまざまな改善を行うことができますが、問題があると思います。

ARCを使用していないため、パーサーから取り出したものを保持する必要があります。

したがって、代わりに:

events=[status objectForKey:@"1"]

あなたがする必要があります:

events= [[status objectForKey:@"1"] retain];

クラッシュは、すでにリリースされている変数にアクセスすることによって発生します。おそらくそれはイベント変数です。

...そしてこれに追加します。イベントは、おそらく'count'が呼び出されているNSArrayです。そして、[status objectForKey:@"1"]は文字列を返しています...私が推測している多くの可能性があります。イベントがNSArrayの場合、これはオブジェクトを配列に追加する方法ではありません。events= [status objectForKey:@"1"];を繰り返し呼び出します。ループでも。

于 2013-03-20T12:57:49.810 に答える