2010-11-20 134 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