2010-05-18 57 views
3

好吧,也許我只需要另一組眼睛就可以了,但在視圖控制器中有一行代碼。它從文件中獲取一些數據,並使用「\ n」作爲分隔符將其填充到數組中。然後我使用該數組創建一個NSDictionary,用於填充tableview。這很簡單。但它沒有工作。這裏是代碼:iphone nsarray問題?

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(名稱)顯示這一點,這看起來是正確的:

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" 
    ); 

\

我失去的東西真的很明顯?

回答

3

有一個在打印出的臨時數組的NSLog聲明沒有格式說明。

+0

哈哈感謝 - 它是一些愚蠢的...它仍然沒有工作(填充tableView),但至少現在我可以看看什麼地方其他的bug ...男孩我需要休息一下 – Brodie 2010-05-18 01:48:28

2

您在記錄tempArray的字符串中沒有變量。

它應該是這樣的:

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

謝謝。我覺得自己像個白癡。我一直在盯着這個代碼超過一個小時... – Brodie 2010-05-18 01:54:49

+0

我知道這種感覺... – pop850 2010-05-22 05:01:37