我已經通過委託將NSArray值傳遞迴父視圖。- [__ NSArrayI isEqualToString:]:發送到已釋放實例的消息
其被接收在父視圖,像這樣
- (void) setManufactureSearchFields:(NSArray *)arrayValues withIndexPath:(NSIndexPath *)myIndexPath
{
manufactureSearchObjectString = [arrayValues valueForKey:@"MANUFACTURER"];
NSLog(@"%@",[arrayValues valueForKey:@"MANUFACTURER"]);
manufactureResultIndexPath = myIndexPath;
[self.tableView reloadData]; //reloads the tabels so you can see the value in the tableViewCell.
}
如果我是執行此代碼,並選擇它顯然執行委託childview的的TableCell但然後凍結向上和火災此錯誤的日誌
2011-10-31 14:06:16.670 code[12610:207] (
"Alfa Romeo"
)
2011-10-31 14:06:16.673 code[12610:207] *** -[__NSArrayI isEqualToString:]: message sent to deallocated instance 0x6859280
但是如果我註釋掉下面一行在我的委託方法
- (void) setManufactureSearchFields:(NSArray *)arrayValues withIndexPath:(NSIndexPath *)myIndexPath
{
//manufactureSearchObjectString = [arrayValues valueForKey:@"MANUFACTURER"];
NSLog(@"%@",[arrayValues valueForKey:@"MANUFACTURER"]);
manufactureResultIndexPath = myIndexPath;
[self.tableView reloadData]; //reloads the tabels so you can see the value in the tableViewCell.
}
它不會崩潰,我最終用NSLog在我的日誌中記錄了正確的細節。
2011-10-31 14:09:28.200 code[12737:207] (
Sony
)
我希望以前有人遇到過這樣的問題,這是我的數組對象看起來像一個值的字典。
ISELECT = F;
ISALIVE = T;
MANUFACTURER = Sony;
MANUFACTURERID = 3;
你的其中一把鑰匙不是。由於您發佈的版本過多,因此它已被釋放。 –
代碼的其他部分可能存在問題。你有沒有在其他地方使用manufactureSearchObjectString? – Bird
是啊我在想同樣的事情,現在的錯誤顯示在哪裏,我將價值超過一個uilabel像這樣** label2.text = manufactureSearchObjectString; **我相信是錯誤的但不知道如何解決,因爲我試圖把一個數組放入文本值,我想我需要做isequaltostring什麼的? –