2012-06-28 60 views
0

我想設置一個對象的屬性後空,但它仍然無效。有誰能告訴我爲什麼,請嗎?對象仍然是一套

聲明:

@property (nonatomic, strong) ListItem *listItem 

下面的代碼:

NSLog(@"Selected: %@", [self.fetchedResultsController objectAtIndexPath:indexPath]); 
[listItem setCategory:[self.fetchedResultsController objectAtIndexPath:indexPath]]; 
NSLog(@"set %@", listItem); 

和輸出:

2012-06-28 14:47:43.037 MarketList[10508:fb03] Selected: <Category: 0xb72a9e0> (entity: Category; id: 0xb7252e0 <x-coredata://F9BFC1DF-1D80-477E-9BC6-3C0949AD922F/Category/p2> ; data: { 
listItem = "<relationship fault: 0x6d29930 'listItem'>"; 
name = "Teste 2";}) 
2012-06-28 14:47:43.038 MarketList[10508:fb03] set (null) 
+2

你還會創建'listItem'? –

+0

可能重複[無法添加項目到NSMutableArray伊娃](http://stackoverflow.com/questions/7125326/cannot-add-items-to-an-nsmutablearray-ivar)和http://stackoverflow.com/questions/3683761/nsmutablearray-addobject-not-affecting-count http://stackoverflow.com/questions/1827058/nsmutablearray-addobject-not-working –

回答

1

你的變量listItem持有nil,而不是實際上你並沒有真正將它指向ListItem的一個實例,所以它仍然是nil在你的方法結束時發送一條消息到nil並不會導致一個對象神奇地彈出來接收消息 - nil只是默默地吞下它必須首先創建ListItem,然後然後設置其屬性。

+0

當然 - ' 我改變了正在使用的變量並忘記創建它, 謝謝! – Junior

1
  1. 有一個分號在您的財產申報丟失(假設這只是一個錯字)。

  2. 你有沒有真正初始化列表項? (即listItem = [[ListItem alloc] init]; 如果不這樣做,指針將是零,並會造成正是這種行爲(用零指針調用恰恰忽略了)。

0
NSLog(@"Selected: %@", [self.fetchedResultsController objectAtIndexPath:indexPath]); 
listItem = [self.fetchedResultsController objectAtIndexPath:indexPath]; 
[listItem setCategory:[self.fetchedResultsController objectAtIndexPath:indexPath]]; 
NSLog(@"set %@", listItem); 
0

使用它之前就ALLOC的對象。在viewDidLoad中分配它。

相關問題