在m个文件之间传递数据时出错

时间:2015-02-22 04:48:53

标签: objective-c

我有两个.m文件并尝试在它们之间传递数据

我有这样的功能

- (unsigned int)ReadNumberOfItemsFromFile:(unsigned int)file number;

在第二个.m文件中,我无法访问此功能。

但是如果我删除了函数参数,那么这个函数在第二个.m文件中可见。

即。如果我换到

- (unsigned int)ReadNumberOfItemsFromFile;

然后这个功能可见

你能否对此有所了解?

更多详情

第一个文件.h声明

- (unsigned int)ReadNumberOfItemFromFile:(unsigned int)file number;

第一个文件Brain.m定义

- (unsigned int)ReadNumberOfItemFromFile:(unsigned int)filenumber
{
    return 1;
}

第二档.m

我正在创建一个对象并调用函数

 self.myTestObject = [Brain alloc];
 [myTestObject brainInit];

 count = myTestObject.ReadNumberOfItemFromFile:1; 
 // gives me an error that "property not found on the object

如上所述,如果我从函数定义和声明中删除参数,然后尝试用参数调用函数,则没有错误。

2 个答案:

答案 0 :(得分:1)

除非您发布的内容有错字,否则

- (unsigned int)ReadNumberOfItemsFromFile:(unsigned int)file number;

无效,因为文件和数字之间有空格。

将此文件放入.h文件时,编译器应生成错误。如果您没有收到错误(并且能够运行您的程序),那么.h文件中的实际内容与您发布的内容不同。

更有可能的是.h文件中的方法声明和.m文件中的方法名称不完全相同。如果它们不存在,编译器应该向您发出有关缺少方法定义的警告。

编辑:

现在查看您发布的代码,您的行:

count = myTestObject.ReadNumberOfItemFromFile:1;

应该是:

count = [myTestObject ReadNumberOfItemFromFile:1]; 

答案 1 :(得分:1)

看来你的路线:

- (unsigned int)ReadNumberOfItemsFromFile:(unsigned int)file number;

不应该工作。它应该是这样的:

- (unsigned int)ReadNumberOfItemsFromFile:(unsigned int)fileNumber;

基本上,请确保两个.h文件中的方法签名完全相同。听起来有可能在一个头文件中:

- (unsigned int)ReadNumberOfItemsFromFile:(unsigned int)fileNumber;

在另一个你有:

- (unsigned int)ReadNumberOfItemsFromFile;