我有一類名爲MyClass包含3 NSInteger的,我不能做這樣的一個方法:方法返回我的對象目標C
- (myClass)getClass {
myClass *class1;
return class1
}
它給了我一個錯誤
編輯:錯誤在.h中
- (myClass *)getClass; Error: expected ')' before 'myClass'
我有一類名爲MyClass包含3 NSInteger的,我不能做這樣的一個方法:方法返回我的對象目標C
- (myClass)getClass {
myClass *class1;
return class1
}
它給了我一個錯誤
編輯:錯誤在.h中
- (myClass *)getClass; Error: expected ')' before 'myClass'
我想您返回myClass
的實例。你可以是這樣做的:
- (myClass *)getClass {
myClass *class1 = [[[myClass alloc] init] autorelease];
return class1;
}
相反,如果你想返回類本身:如果你希望它是一個類的方法,而不是
- (Class)getClass {
return myClass;
}
您可以將-
更改爲+
一個實例方法。你的問題不太清楚。
在Objective-C,你永遠不能憑藉它的值返回一個對象,因爲在Objective-C的對象的大小在編譯時已知的。如果你不喜歡星號,你可以使用typedef myClass* myClassRef
,並返回myClassRef
。
謝謝,但錯誤在.h中,而不是在.m中。我在.m中也有錯誤,但是我寫了你的第一個代碼,並且我修復了它們。 – asterix22
完成馬赫什響應,你需要做的:
- (myClass*) getClass {
myClass *class1;
return class1;
}
,或者如果方法是靜態的,你需要做的:
+ (myClass*) getClass {
myClass *class1;
return class1;
}
什麼樣的錯誤? – millimoose
@Inerdia可能「接口類型'myClass'不能被值返回。」 – 2011-10-29 14:38:21
不,「預計」)'myClass之前「 – asterix22