gpt4 book ai didi

iphone - 设置 UITableViewCell :textLabel:text 时应用程序崩溃

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:54:02 27 4
gpt4 key购买 nike

我正在创建一个 Split View iPad 应用程序。当用户按下主视图中的条形按钮项时,将显示一个模式。这个模式有一个文本字段和一个 IBAction 来获取键盘返回。

在键盘返回时,我的 Farm 类的一个新实例被创建(代码如下)。然后将此实例添加到存储在我的委托(delegate)中的数组中。然后我尝试重新加载 MasterViewController 的表。重新加载后,应用程序在 cell.textLabel.text 上崩溃并出现 EXC_BAD_ACCESS 错误。

Farm *current = [delegate.arrayOfFarms objectAtIndex:indexPath.row];
cell.textLabel.text = [current getFarmTitle];

如果我询问委托(delegate)中的数组它有多少元素,它确实会显示当前数量,甚至。这就是整件事对我来说很奇怪的地方:农场实例似乎是存在的。

我的 MasterViewControllerNewFarmNamingView 类中都有 AppDelegate 的实例。 Master中的实例是用来填充表的。 NewFarm中的实例是将新创建的Farm添加到delegate中。代码如下。

来自 NewFarmNamingView 类的片段:

- (IBAction) keyboardDonePushed:(id)sender
{
// create a Farm and add it to the delegate
NSString *text = newFarmTextField.text;
Farm *newFarm = [[Farm alloc] init];
[newFarm setFarmTitle:text];
[[delegate arrayOfFarms] addObject:newFarm];
[newFarm release];

NSLog(@"Added farm: %@" , text);

// dismiss the view
[self closeView:nil];
}

- (void)viewDidLoad
{
[super viewDidLoad];

// initialize the delegate
delegate = [[UIApplication sharedApplication] delegate];
}

来自 Farm 类的片段

- (void) setFarmTitle : (NSString *) _farmTitle
{
farmTitle = _farmTitle;
}

- (NSString *) getFarmTitle
{
return farmTitle;
}

// NSCoding Methods
- (void) encodeWithCoder:(NSCoder *)aCoder
{
[aCoder encodeObject:farmTitle forKey:@"kFarmTitle"];
}

- (id) initWithCoder:(NSCoder *)aDecoder
{
farmTitle = [aDecoder decodeObjectForKey:@"kFarmTitle"];
return self;
}

// Initialization method
- (id)init
{
self = [super init];
if (self) {
// Initialization code here.
}

return self;
}

最佳答案

来自运行时引用:“objc_msgsend 向接收方发送一条消息并期望一个简单的返回值。”

我敢打赌,您在该类方法 getTitleFarm 中返回的内容(如果您根本没有返回任何内容)返回的值不正确。它应该是一个 NSString。绝对确定它返回的是 NSString,而不是其他任何东西。

如果您需要使用respondsToSelector 方法来查看类是否正在被释放,请尝试:

if([current respondsToSelector:@selector(getFarmTitles)])  {.    [current getFarmTitle];
}
else {
NSLog:(@"FAILURE!!");
}

编辑:也许您根本没有保留甚至创建这个字符串。在它的初始化中,将它包装在 retain]; 消息中

关于iphone - 设置 UITableViewCell :textLabel:text 时应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8830069/

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