如何在类延续中编写协变读写属性?

发布于 2024-09-19 13:28:30 字数 494 浏览 1 评论 0原文

给出以下示例

// MyClass.h
@interface MyClass {
  NSMutableArray *queue;
}

@property (readonly, retain) NSArray *queue;

@end

// MyClass.m
@interface MyClass ()

@property (readwrite, retain) NSMutableArray *queue;

@end



@implementation MyClass

@synthesize queue;

@end

我从编译器收到 Property 'queue' type in 'MyClass' class continuation does not match class 'MyClass' property 警告。将“私有”协变设置器添加到类中而无需手动编写的最佳方法是什么?

Given the following example

// MyClass.h
@interface MyClass {
  NSMutableArray *queue;
}

@property (readonly, retain) NSArray *queue;

@end

and

// MyClass.m
@interface MyClass ()

@property (readwrite, retain) NSMutableArray *queue;

@end



@implementation MyClass

@synthesize queue;

@end

I get a Property 'queue' type in 'MyClass' class continuation does not match class 'MyClass' property warning from the compiler. What is the best way to add "private" covariant setters to a class without writing them by hand?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

唐婉 2024-09-26 13:28:30

你做对了。这里的问题是 NSArray 不是 NSMutableArray。如果您也将私有属性设置为 NSArray,然后编写自己的接受 NSMutableArray 的 setter,那么它应该按预期工作。

You did it correctly. The issue here is NSArray isn't an NSMutableArray. If you make the private property a NSArray as well, and then write your own setter that accepts a NSMutableArray it should work as expected.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文