问题标签 [declared-property]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
objective-c - 在属性上设置属性会调用第一个属性的设置器吗?
如果一个类有一个属性的自定义设置器:
并且InnerClass
本身有一个属性:
然后我会这样做:obj.text = @"Hello";
这会激活OuterClass
对象的setObj:
方法吗?
objective-c - 防止在公共接口中向 NSMutableArray 添加对象
我想在公共接口中保护对 NSMutableArray 的访问
我试图通过在公共接口中将属性定义为 NSArray 并在私有接口中定义为 NSMutableArray 来做到这一点,如下所示:
但这不起作用 - 所以我必须在公共接口 NSMutableArray 中定义属性:
目标是为 API 客户端提供对注释的只读访问权限以及addObject:
对实现中方法的完全访问权限。
所以定义目标更清晰:
- 客户端应该可以访问属性作为 NSArray 而不能访问突变方法。
- 客户不应该有能力更新评论以指向新的价值。
- 该解决方案必须在不创建额外结构和数组复制的情况下完成。
所以简单的问题是是否有可能使属性的公共定义更通用(NSArray 而不是 NSMutableArray)。
有没有其他干净的方法可以达到目标,或者我必须在任何地方使用 NSMutableArray?
解析度
在查看了我最初的问题和答案后,我意识到我想在公共接口中使用更通用的类 NSArray 并在实现中使用 NSMutableArray - 但对于一个属性来说这是不可能的。所以答案是不可能的。
所以我将只使用 NSMutableArray 的单个属性,而不需要任何额外的保护。
但是,如果您真的更喜欢保护而不是简单和高效,我也会选择最合适的答案。
objective-c - 为什么在访问没有 self 的属性时有时会出现编译器错误?
我注意到在一些旧版本的 Xcode 中,你可以使用对象的属性而不是self
很好。现在,当我尝试在没有 的情况下访问我的属性时,它给了我一个错误self
,但是今天我正在编写这段代码,它工作正常,并且没有给我任何错误。
为什么会这样?为什么在这种情况下我不会收到错误消息?为什么在其他情况下会引发错误?为什么不能统一这种行为,应该怎么用?
performance - 三个属性与一个 NSDictionary 相比的内存效率
我想将一些数据传递给我的对象,我有两个选择。
关于记忆 - 什么更有效?声明三个属性或声明一个NSDictionary
使用initWithCapacity:3
?
objective-c - BOOL ivar 是否应该是允许另一个类设置它的指针?
我的类有一个BOOL
需要由另一个类设置的属性,所以我正在尝试使用指针。我正在为它声明一个属性,如下所示:
这是正确的方法吗?然后我只需像这样设置和访问值:
还是将其设置为可保留属性的正确方法?
objective-c - 为我的 Objective-C 类的用户强制执行复制语义
我有一个用于复制语义的 Objective-C 类。
它不是一成不变的,但是挂在ViewState
实例上的所有东西都需要自己独特的副本。事实上,如果其他班级错误地尝试
我们最终会崩溃。
我们如何强制或鼓励客户端类使用正确的语义?
例如,在 C++ 中,我们可以禁止赋值
但是我们不能在 Objective-C 中做到这一点。对于相反的情况,我们想要禁止复制,我们可以记录错误或从copyWithZone:
.
我如何才能要求复制语义,或者至少让未来的开发人员清楚他们想要使用复制语义?
cocoa-touch - 从 NSDictionary 中的值设置 NSObject 的属性
我想知道是否可以在不单独设置每个属性的情况下设置NSObject
from an的属性。NSDictionary
中的属性名称NSObject
与NSDictionary
.
有没有一种简单的方法可以做到这一点?
objective-c - 如果一个对象是另一个对象的合成属性,它会自动初始化吗?
当您在 Objective-C 中将一个对象作为另一个对象的属性时,它会在您使用时自动初始化@synthesize
吗?
variables - Autoit GUI,按下按钮时未声明变量
我仍在学习如何编写自己的 GUI 脚本。Koda 帮了我很大的忙,我一直在玩弄它,一次学习一点点。但是,我遇到了一个似乎无法解决的错误。我正在使用的当前 GUI 是一个用于更改游戏机器人设置的简单工具。这个 gui 应该有 5 个用于难度设置的按钮,以及一个用于机器人数量的复选框列表。
但是,当我选择难度级别、机器人编号并点击保存时,我收到此错误:
此行发生错误(最后的 botSAVE 按钮):
我认为按钮功能“Func numClick()”根据按下的按钮设置了这个变量,但显然我忽略了一些东西。希望这是一个简单的修复。有人看到可能导致此错误的原因吗?我已经在 autoitcsript 论坛上发布了这个问题,但他们似乎回避了游戏自动化脚本,所以我在那里并没有真正得到太多帮助。
- 如果有人看到我做错了什么,或者有一个链接到一个主题的链接,该主题涵盖了通过单击按钮声明变量,总是感谢帮助。我发现的唯一主题非常模糊,或者与我正在寻找的内容略有不同
objective-c - 覆盖属性以使其在子类中为只读
我想以UILabel
这样一种方式进行子类化,即类的用户不能text
直接通过label.text = @"foo"
. 相反,我想根据某些值从子类内部设置文本。
我尝试了什么:
平衡标签.h:
但是,我收到一条警告,告诉我我正在限制访问(就像我想要的那样),但是如果我尝试直接使用我的子类的对象text
来设置,我不会收到任何编译时错误。text