NSArray componentsSeperatedByString Sigabrt

时间:2011-10-07 19:38:53

标签: iphone ios nsstring nsarray sigabrt

我在NSlog上得到一个Sigabrt,我不明白为什么 - 有什么建议吗?

NSString* contentList = [NSString stringWithContentsOfFile:currentFilePath encoding:NSUTF8StringEncoding error:nil];
NSArray* contentArray = [contentList componentsSeparatedByString:@"$$"];

NSLog(@"%@%@",contentList,[contentArray count]);
kunden = [contentArray objectAtIndex:0];
kundenView.text = kunden;

按照乔斯的建议,我现在得到了:

   NSString* contentList = [NSString stringWithContentsOfFile:currentFilePath encoding:NSUTF8StringEncoding error:nil];
NSArray* contentArray = [[contentList componentsSeparatedByString:@"$$"] retain];
if ([contentArray count] > 0) {
    NSLog(@"%@%@",contentList,[contentArray count]);
    kunden = [contentArray objectAtIndex:0];
    kundenView.text = kunden;
}

这给了我一个在NSLog上的EXC_BAD_ACCESS。

2 个答案:

答案 0 :(得分:4)

  

我在NSlog上获得了Sigabrt

你的NSLog语句试图打印一个整数,好像它是一个对象:

NSLog(@"%@%@",contentList,[contentArray count]);
           ^
         Here!

%@替换为%d

您可以在String Programming Guide

中详细了解格式说明符

答案 1 :(得分:1)

您没有检查以确保阵列中至少有1个元素。如果[contentArray objectAtIndex:0]为空,则访问contentArray将是一个问题。