gpt4 book ai didi

iphone - 调用方法[self somemethod]时如何解决错误

转载 作者:行者123 更新时间:2023-12-01 18:30:40 27 4
gpt4 key购买 nike

我有这个代码:

// .m
- (void)viewDidLoad {
NSMutableArray *array = [[NSMutableArray alloc] init];
[self addToArray];
}

- (void)addToArray {
NSString *stringA;
[stringA isEqualToString:@"door"];
NSString *stringB;
[stringB isEqualToString:textField.text];
[array addObject:stringA];
if ([stringA isEqual:stringB]) {
[stringA isEqual:nil];
[tableView reloadData];
} else {
[array addObject:stringB];
[tableView reloadData];
}
}

当我调用方法addToArray时,它会不断向我返回一个名为 Thread 1: Program recived signal "EXC_BAD_ACCESS"的错误,调试器的输出显示为: Single stepping until exit from function objc_msgSend, which has no line number information.行的 [self addToArray]。关于如何解决的任何想法?我已经浪费了很多时间,请帮帮我!

最佳答案

正如其他人所说,array应该是在.h文件中声明的实例变量或类的属性:

@property (strong) NSMutableArray *array;

或者,没有ARC:
@property (retain) NSMutableArray *array;

现在,您在实现文件中添加了 @synthesize array;,可以从任何地方访问它。然后,您可以执行以下操作:
- (void) viewDidLoad 
{
self.array = [[NSMutableArray alloc] init];
[self addToArray];
}

您似乎假设 isEqualToString进行了分配。不会,它会检查字符串(文本)是否相等。尝试这个:
- (void) addToArray
{
NSString *stringA = @"door";
NSString *stringB = textField.text;
[array addObject: stringA];
if (![stringA isEqualToString: stringB])
[array addObject: stringB];
[tableView reloadData];
}

关于iphone - 调用方法[self somemethod]时如何解决错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9240262/

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