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 selector sent to instance

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];

您的崩溃是由访问已释放的变量引起的。很可能是事件变量。

...并添加到这一点。events 可能是一个正在调用“count”的 NSArray。并且 [status objectForKey:@"1"] 正在返回一个字符串......我在猜测有很多可能性。如果 events 是一个 NSArray,这不是将对象添加到数组的方法。你反复调用 events=[status objectForKey:@"1"]; 也在一个循环中。

于 2013-03-20T12:57:49.810 回答