gpt4 book ai didi

objective-c - [XXXX执行选择器:withObject:]: message sent to deallocated instance

转载 作者:行者123 更新时间:2023-12-03 17:55:26 26 4
gpt4 key购买 nike

从 NSView 启动 IBAction 时收到此错误消息。

XXXX 是 AccountTableCellViewController 我确实给它起了一个抽象名称,以防它可以帮助其他人。

这是组件的结构:

我有一个应用程序可以加载此 View : enter image description here

使用此 NSView 作为单元格 enter image description here

TableView 已这样绑定(bind):

@property (nonatomic,retain) IBOutlet NSTableView *tableView;

我显示的内容如下(我对没有在任何地方链接 Controller 有一些疑问)

- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row
{
Account *account = (Account *)[self.dataSource objectAtIndex:row];

AccountTableCellViewController *controller = [[AccountTableCellViewController alloc] initWithNibName:@"AccountTableCellViewController" bundle:nil ];
controller.account = account;
return [controller view] ;
}

有什么想法吗?

最佳答案

这是您的代码的 ARC 之前版本

- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row
{
Account *account = (Account *)[self.dataSource objectAtIndex:row];

AccountTableCellViewController *controller = [[AccountTableCellViewController alloc] initWithNibName:@"AccountTableCellViewController" bundle:nil ];
controller.account = account;
NSView *result = [[controller view] retain];
[controller release]; /// !!!
return [result autorelease];
}

tableView:viewForTableColumn: 返回时,您的 Controller 已被释放。您在评论中说您尝试将 Controller 保留在数组中,但这没有帮助。请用代码的相应部分更新您的问题,因为这里有问题。

关于objective-c - [XXXX执行选择器:withObject:]: message sent to deallocated instance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14414814/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com