目标C -错误与自定义返回类型



我对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风格一样指针。类方法应该返回一个值,通常是指向同一类对象的指针,所以如果你使用initialize你想让它返回一个Room*
  1. 良好的编码实践是覆盖-(Class *) init;,但是除非你需要。这是因为你(或某人)做的第一件事Else使用你的代码)应该/将做当使用一个对象(通常)是调用某种形式的[[Class alloc] init]。如果他们称之为当您有一个特殊的initialize函数时,它将调用代替NSObject -(NSObject *)init;方法,以及您的实例变量不会被设置。

最新更新