好了,开始吧。我已经完成了一个Cocoa基础工具,它可以计算随机整数的平均绝对偏差(就像一个学习项目一样)。
我已经将计算转移到一个名为"findMeanAbsoluteDeviation()“的函数中,它接受NSNumber对象的NSMutableArray来执行计算。不管怎么说。因此,当我在与其他代码相同的".m“文件中声明它时,这一切都很好。
#import <Foundation/Foundation.h>
float findMeanAbsoluteDeviation(NSMutableArray * array);
int main (int argc, const char * argv[]) {
...generate random integers, execute function...
meanAbsoluteDeviation = findMeanAbsoluteDeviation(numArray);
}
float findMeanAbsoluteDeviation(NSMutableArray * array) {
...mean absolute deviation maths...}
它工作得很好。现在,我想将函数移动到一个外部文件中。我创建了一个名为"mad“的NSObject子类。我把这个函数移动到我疯狂的"mad.m“中,我读了一下,然后重新格式化了声明,看起来像这样。
-(float)findMeanAbsoluteDeviation:(NSMutableArray *)array {
...code...
}在我的"mad.h“文件里。
@interface mad : NSObject {
}
- (float)findMeanAbsoluteDeviation:(NSMutableArray *)array;
@end看起来都很棒。对吗?我要做的就是添加...
#import "mad.m"转到我的"main.m“文件的顶部,并像往常一样使用函数。嗯,它似乎不能正确编译。
ld: duplicate symbol .objc_class_name_mad in ------standardDeviation.build/Debug/standardDeviation.build/Objects-normal/i386/mad.o and ------standardDeviation.build/Debug/standardDeviation.build/Objects-normal/i386/standardDeviation.o为了长度起见,省略了“-”
Command /Developer/usr/bin/gcc-4.0 failed with error code 1有什么想法吗?谢谢你的帮忙!
发布于 2009-05-06 02:25:10
您需要#import "mad.h",而不是#import "mad.m",否则类实现将被计算两次,因此会出现您看到的错误。
以下是几个风格要点:
NSGeometry.h。NSGeometry.h命名约定的可变数组。
例如:
@interface MEMeanAbsoluteDeviation : NSObject {
}
+ (float)meanAbsoluteDeviation:(NSArray *)array;或者简单地说:
float MEMeanAbsoluteDeviation(NSArray *array);https://stackoverflow.com/questions/827726
复制相似问题