0

我正在尝试将一个对象作为属性放入另一个对象中:

    @interface Options
{
      Guarantor *guarantors;
      NSString *success_message;
      NSString *source;
}

@end

这是我的担保人对象:

@interface Guarantor{
   BOOL *status;
   NSString *message;
   NSInteger *number;

}

@end

我遇到了一个错误,上面写着unknown type name Guarantor?为什么是这样?

4

1 回答 1

0

更改声明的顺序(在 Objective-C 中确实很重要)......并使它们成为 NSObject,没有它是没有意义的。

// 1st
@interface Guarantor: NSObject {
   BOOL *status;
   NSString *message;
   NSInteger *number;

}
@end

// 2nd
@interface Options: NSObject {
      Guarantor *guarantors;
      NSString *success_message;
      NSString *source;
}
@end

替代是使用前向声明,如

@class Guarantor; // forward declaration

// 1st
@interface Options: NSObject {
      Guarantor *guarantors;
      NSString *success_message;
      NSString *source;
}
@end

// 2nd
@interface Guarantor: NSObject {
   BOOL *status;
   NSString *message;
   NSInteger *number;

}
@end
于 2020-05-07T17:47:35.993 回答