0
好的,這裏有。我已經完成了一個Cocoa基礎工具,可以計算隨機整數的平均絕對偏差(就像學習項目一樣)。在Cocoa/Obj-C項目中聲明外部函數
我已將計算移入名爲「findMeanAbsoluteDeviation()」的函數中。它接受NSMumber對象的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
任何想法?謝謝你的幫助!
確定。我很喜歡Stack Overflow。非常感謝。我改變了我的「#import」聲明。 然後我讀了(http://www.otierney.net/objective-c.html)上的類方法,我想知道+和 - 之間有什麼區別。非常感謝。我永遠感謝:) 還有一個問題,如果我的函數接受NSArray,我可以傳遞它一個NSMutableArray,因爲它是NSArray的子類,或者我應該NSAray * copyArray = [NSArray initWithArray:myMutableArray]; ?我很確定它的前者。 – 2009-05-06 02:49:32