Ios 已将无法识别的选择器发送到实例

Ios 已将无法识别的选择器发送到实例,ios,objective-c,Ios,Objective C,我正在使用appDelegate共享NSMutableArray,但它正在崩溃。错误消息是: 已将无法识别的选择器发送到实例 我的代码是: countrydata *countryobj=(countrydata *)[listItems objectAtIndex:indexPath.row]; if(addItems==nil) { addItems=[[NSMutableArray alloc]init]; } [addItems addObject:countryobj];

我正在使用appDelegate共享NSMutableArray,但它正在崩溃。错误消息是:

已将无法识别的选择器发送到实例

我的代码是:

countrydata *countryobj=(countrydata *)[listItems objectAtIndex:indexPath.row];

if(addItems==nil)
{
    addItems=[[NSMutableArray alloc]init];
}
[addItems addObject:countryobj];

callAppDelegate *appDelegate = (callAppDelegate *)[[UIApplication sharedApplication] delegate];
appDelegate.AddItems=addItems;

[self dismissModalViewControllerAnimated:YES];

我的代码哪里错了?appdelegate.AddItems是NSMutableArray,并且已在callAppDelegate.h中声明。我已经在顶部导入了callAppDelegate.h。

如果错误发生在appDelegate.AddItems=AddItems,那么您可能忘记了合成它

你应该加上 @合成添加剂; 在*appDelegate.m中@implementation之后

这假设您已经在头文件.h中声明了@property非原子,retain/assign

[更新]次要注释如果您确实将其声明为@property nonatomic,retain,那么您应该在将其设置为retained属性后释放addItems,因为这将导致内存泄漏

例如


错误发生在哪一行?该错误消息表示您正在向未声明该消息的对象发送消息。附加项可能存在内存泄漏,以及btwappDelegate。附加项=附加项;如果发生错误。我无法将值解析为appDelegate。您的变量和类命名方案非常混乱。有些变量以大写字母开头,有些变量以小写字母开头。这同样适用于您的类名。如果您的项目开始增长,这将给您带来大麻烦。完全同意fluchpunkt,建议您阅读一些关于编程的最佳实践:
appDelegate.AddItems=addItems;
[addItems release];