我已经通过委托将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什么的? –