iPhone NSArray问题?

3

好的,也许我只需要另一双眼睛来看看这个问题,但是在我的一个视图控制器中有以下代码行。它从文件中获取一些数据,并使用"\n"作为分隔符将其填充到数组中。然后我使用该数组创建一个NSDictionary,用于填充tableview。非常简单。但是它不起作用。以下是代码:

NSString *dataString = [NSString stringWithContentsOfFile:checklistPath encoding: NSUTF8StringEncoding error:NULL];


    if ([dataString hasPrefix:@"\n"]) {
        dataString = [dataString substringFromIndex:1];

    }
    NSArray *tempArray = [dataString componentsSeparatedByString:@"\n"];
    NSLog(@"datastring:%@",dataString);
    NSLog(@"temp array:",tempArray);
    NSLog(@"%i",[tempArray count]);

    NSDictionary *temporaryDictionary = [NSDictionary dictionaryWithObject: tempArray forKey:@"User Generated Checklist"];
    self.names = temporaryDictionary;
            NSLog(@"names:%@",names);

因此,在日志中,datastring 是正确的,所以它正在正确地从文件中提取数据。然而,对于tempArray,我得到了:

2010-05-17 19:15:55.825 MyApp[7309:207] temp array:

对于tempArray,我得到的计数是:

2010-05-17 19:15:55.826 myApp[7309:207] 5

数组中字符串的正确数量是多少

所以我被卡住了。在另一个视图控制器中,我有完全相同的几行代码,它可以完美地工作。更疯狂的是,最后一个 NSLog 显示了最终的 NSDictionary(names),显示如下,看起来是正确的:

2010-05-17 19:15:55.827 FS Companion[7309:207] names:{
    "User Generated Checklist" =     (
        "System|||ACTION",
        "System|||ACTION",
        "System|||ACTION",
        "System|||ACTION",
        "System|||ACTION"
    );

我是否错过了一些非常明显的东西?

2个回答

2

NSLog语句中没有格式说明符来打印temp数组。


哈哈,谢谢 - 这确实是个愚蠢的错误...虽然现在仍然无法工作(填充tableView),但至少我可以在其他地方寻找错误了...我需要休息一下,哈哈。 - Brodie

1

在记录tempArray的字符串中,您没有一个变量。

应该是这样的:

NSLog([NSString stringwithformat:@"temp array: %@",tempArray]);

谢谢。我感觉自己像个白痴。我已经盯着这段代码一个多小时了... - Brodie

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接