如何在 Objective C 类中设置布尔类型属性

发布于 2025-01-08 03:29:33 字数 203 浏览 2 评论 0原文

如何在目标 C 类中使用布尔属性,我这样做了:

@property (nonatomic, copy) BOOL *locationUseBool;

但它给出了错误:

具有“copy”属性的属性必须是对象类型。

正确的申报方式是什么?

How to use a boolean property in objective C class, i did it like:

@property (nonatomic, copy) BOOL *locationUseBool;

but it gives error that:

Property with 'copy' attribute must be of object type.

what is the correct way of declaring?

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

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

发布评论

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

评论(3

瑾夏年华 2025-01-15 03:29:33

您也可以这样声明。

@property (assign) BOOL locationUseBool;

基本上,如果您说非原子,并且使用 @synthesize 生成访问器,那么如果多个线程尝试同时更改/读取该属性,则可能会发生不良情况。您可以获得部分写入的值或过度释放/保留的对象。

在多线程程序中,原子操作不能部分中断,而非原子操作可以。

You can declare this way also.

@property (assign) BOOL locationUseBool;

Basically, if you say nonatomic, and you generate the accessors using @synthesize, then if multiple threads try to change/read the property at once, badness can happen. You can get partially-written values or over-released/retained objects

In a multi-threaded program, an atomic operation cannot be interrupted partially through, whereas nonatomic operations can.

烟雨凡馨 2025-01-15 03:29:33
@property (nonatomic, assign) BOOL locationUseBool;

没有星号,没有复制,没有保留。

@property (nonatomic, assign) BOOL locationUseBool;

No asterisk, no copy, no retain.

黎夕旧梦 2025-01-15 03:29:33

这对我有用。

@property (nonatomic) BOOL locationUseBool;

属性声明中没有星号*符号。此外,“分配”的使用是可选的。

This one worked for me.

@property (nonatomic) BOOL locationUseBool;

There is not asterisk * symbol in property declaration. Also, use of 'assign' is optional.

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