我对Objective-C非常陌生,所以这可能是非常基础的。
无论如何,我试图在我的类中指定自定义返回类型,并且我不断得到错误,类要么需要星号*,要么根本不被认为是类型。我读到您需要在头文件中使用@class而不是#import,但在这种情况下似乎没有帮助。我还做错了什么?
下面是我的代码:#import <Foundation/Foundation.h>
@class Room;
@interface LevelData : NSObject {
@private
NSArray *data;
Room *currentRoom;
}
+(void)initialize;
+(*Room)getCurrentRoom;
@end
多谢了!
将这一行改为:
+(Room *)getCurrentRoom;
,看看是否能编译。Room *
表示你正在返回一个指向房间Objective-C对象的指针。
- 星号应该跟在类名后面,就像标准的c风格一样指针。类方法应该返回一个值,通常是指向同一类对象的指针,所以如果你使用
- 良好的编码实践是覆盖
-(Class *) init;
,但是除非你需要。这是因为你(或某人)做的第一件事Else使用你的代码)应该/将做当使用一个对象(通常)是调用某种形式的[[Class alloc] init]
。如果他们称之为当您有一个特殊的initialize
函数时,它将调用代替NSObject
-(NSObject *)init;
方法,以及您的实例变量不会被设置。
initialize
你想让它返回一个Room*