2012-06-24 137 views
2

我知道很多人問這個問題,但所有的答案都是特定的應用程序,所以我不明白如何爲我的應用程序工作。Xcode「使用未聲明的標識符」

 tableData = [NSArray arrayWithObjects:@"Chocolate Brownie", @"Mushroom Risotto", nil]; 
    } 

    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection: (NSInteger)section 
    { 
     return [tableData count]; 
    } 

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
    { 
     static NSString *simpleTableIdentifier = @"SimpleTableItem"; 

     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier]; 

     if (cell == nil) { 
      cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier]; 
     } 

     cell.textLabel.text = [tableData objectAtIndex:indexPath.row]; 
     return cell;` 
    } 
+0

好的....你在哪一行收到錯誤?你需要至少更具體一點。 –

+0

在我使用tableData的每一行上,它表示使用未聲明的標識符。 – user1477809

回答

7

原因正在變爲tableData變量未保留,您已通過工廠方法將其分配,並且已經自動釋放。

在.h文件中,使其保留屬性並與自己一起使用此變量。在你的代碼中。

@property(nonatomic,retain) NSArray *tableData; 
在.M

@synthesize tableData; 

然後用它喜歡:

self.tableData = [NSArray arrayWithObjects:@"Chocolate Brownie", @"Mushroom Risotto",  nil]; 

現在你不會得到任何錯誤的資料表,現在保留下來。

如果您不使用ARC,請不要忘記在dealloc中發佈它。

+0

它仍然出現。我如何在dealloc中釋放它,我之前沒有這樣做。 – user1477809

+0

self.tableData = nil; – samfisher

4

你必須聲明你的NSArray作爲一個屬性併合成它。 在你的類定義:

@property (retain, nonatomic) NSArray *tableData; 

並在實施:

@synthetize tableData = _tableData; 
+0

在該行上它現在表示未使用的變量,其他行仍然有錯誤。 – user1477809

+0

它應該現在工作,對不起。 –

3

好吧,這是一個簡單的解決。您在每一行引用「tableData」時都會收到錯誤,因爲它是未聲明的。換句話說,你的應用從來沒有被告知過「tableData」是什麼。

您可以在您的.h文件中聲明「資料表」,它應該是這個樣子......

@interface yourClassName : UITableViewController 
{ 
    NSArray *tableData; 
} 

編輯:圍棋與@ grasGendarme的答案,如果你只會呼籲該陣列從這個功能中,如果你希望在整個控制器中使用它,請使用這個答案。

編輯2:關於您更新的問題,請檢查此問題上的錯誤。

enter image description here

這藍色箭頭表示您已設置代碼中的斷點上這一行。您可以右鍵單擊錯誤並選擇刪除斷點。

+0

現在,當我去運行應用程序,它說構建成功,但一旦模擬器加載應用程序就退出。在它所說的代碼中(在我寫的第一行中)「線程1:斷點3.1」 – user1477809

+0

@ user1477809請在我的答案中看到「編輯2」。 –

+0

感謝大家幫助! – user1477809