2010-11-20 167 views
0

我想发送一个消息与多个对象,但只是不能得到它的工作。它完美地使用一个消息(objectsArray),但不是两者兼而有之。发送消息到对象

PlayerData.h:

- (void)savePlayerData:(NSArray *)objectsArray andKey:(NSString *)keyString; 

PlayerData.m:

- (void)savePlayerData:(NSArray *)objectsArray andkey:(NSString *)keyString { 

以下是我尝试从另一个.M调用PlayerData:

NSString *keyString = [[NSString alloc] init]; 
    keyString = @"key test"; 
    PlayerData *accessPlayerDataFunction = [PlayerData new]; 
    [accessPlayerDataFunction savePlayerData:objs andKey:keyString]; 

OBJ文件是NSArray的。

我得到的错误是:

警告:对方法的定义:不完全的实现类 'PlayerData' 警告 '-savePlayerData:andKey:' 未找到

+1

请注意,可以通过将行缩进四个空格来将行格式化为代码。编辑器工具栏中的“101 \ n010”按钮可以为您做到这一点。单击编辑器工具栏中的橙色问号以获取更多信息和格式化提示。 – outis 2010-11-20 13:02:23

回答

4

的问题是,您在实现中的选择器名称(“.m”文件)中存在拼写错误。

在头

你写andKey(骆驼)

(void)savePlayerData:(NSArray *)objectsArray andKey:(NSString *)keyString; 

,并在执行你有andkey(无驼峰)

(void)savePlayerData:(NSArray *)objectsArray andkey:(NSString *)keyString 

除此之外你泄漏内存:

NSString *keyString = [[NSString alloc] init]; 
keyString = @"key test"; 

通过给你的变量分配@“key test”,你不再引用你之前分配行的原始对象。您可以将@“key test”分配给keyString。

+0

与keyString我新的泄漏,并只用于测试。 – PeterK 2010-11-20 13:38:57

+0

骆驼案例解释恐怕我不明白。是不是和一个骆驼案件?如果你能解释更多答案,我会非常感激。 – PeterK 2010-11-20 13:41:04

+0

是和key是骆驼大小写。在.h文件中使用骆驼大小写,而在.m文件中不使用骆驼大小写。这就是编译器无法找到实现的原因。像C一样,Objective-C区分大小写。 – 2010-11-20 14:10:37