问题标签 [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.

0 投票
10 回答
24913 浏览

objective-c - 以字符串形式获取属性名称

我需要一种方法来传递属性并获取分配给它的名称。有什么建议么?

0 投票
2 回答
2293 浏览

objective-c - 如何在 Objective-C 中使用运行时反射来解析属性 getter/setter 方法选择器?(或反向)

Objective-C 提供运行时反射特性。我正在尝试查找已声明属性的 getter/setter 选择器名称。我知道field/之类的基本规则setField:。无论如何,我认为运行时反射应该提供一个功能来解析完整抽象的名称,但我找不到该功能。

如何在Objective-C(实际上是Apple的Cocoa)中使用运行时反射解决声明属性的getter/setter方法选择器(不是实现)

或反向查询。(方法选择器→声明的属性)

0 投票
1 回答
343 浏览

objective-c - 键值编码是否支持声明属性的自定义访问器名称?

Cocoa 的键值编码使得对属性的获取/设置操作变得简单。无论如何文档说它只识别预定义的命名模式。我认为这个特性可以支持Declared Property 。实际上,Declared Property 的基本访问与 Key-Value 编码的搜索模式相同。问题是自定义访问器。因为自定义访问器存储为属性的属性,所以我认为很容易在键值编码中支持它们。但我找不到关于这个的提及。

使用自定义访问器对声明的属性使用键值编码时的常规行为是什么?

0 投票
3 回答
1400 浏览

ios - 为什么在 Xcode 自动生成托管对象类文件时,属性声明将布尔属性的类型设置为 NSNumber?

当我让 Xcode 自动为数据模型中的实体创建类文件时,我指定的任何属性Boolean都会在属性声明中获取 NSNumber 类型:

由于我使用的是 ARC,不应该是strong而不是retain吗?

可能发生这种情况是因为Boolean无法转换为对象。那是对的吗?如果是这样,我如何使用应该具有布尔值的属性?

0 投票
3 回答
1116 浏览

objective-c - 属性是否默认为零?

如果我不使用 ivar 作为属性,但这样做:

我第一次检查self.someArray它会返回nil_someArray但这是有保证的吗?我只读到 ivars 保证是nil,并且由于我没有声明 ivar (_someArray不是 ivar),我不确定它是否会nil无处不在。

0 投票
1 回答
215 浏览

objective-c - 为什么这个 UIView 在某些情况下不被添加为子视图,但在其他情况下呢?

我有一个 UIView viewForRootVc,它是 UIView 子类的声明属性NewView。初始化是NewView的责任viewForRootVc,但随后子类NewViewSubClass设置其背景颜色。完成这一切后,根视图控制器RootVcviewForRootVc作为子视图添加到其视图中。

但这不起作用。viewForRootVc实际上并没有被添加。

但是,如果我执行以下三件事中的任何一项(请记住我使用的是 ARC),它确实有效:

  1. 我没有设置viewForRootVcin的背景颜色,而是将其设置为。然后,我不初始化 的实例,而是简单地初始化 的实例。NewViewSubClassNewViewNewViewSubClassNewView
  2. 在初始化viewForRootVcNewView,我调用setter(即self.viewForRootVc),而不是仅仅使用直接赋值。
  3. viewForRootVc在头文件中作为 ivar列出NewView

我不明白为什么这三件事都是必要的。

这是不起作用的代码:RootVc.m

新视图.h

新视图.m

新视图子类.m

我注意到的一件事是,如果我指定为viewForRootVcivar,我不需要放入.@synthesize viewForRootVc;NewViewSubClass

我一直理解声明的属性可以有效地实现以下目标:

  1. 允许其他对象访问它们。
  2. 允许在需要时调用 setter。
  3. 如果不使用 ARC,如果您retain在属性声明中指定,调用 setter 将自动保留该属性。
  4. 在 ARC 下,任何声明的属性都会自动生成一个 ivar。

但显然,它的意义远不止于此。我不确定这是否是范围问题,或者我上面的非工作代码是否最终创建了两个不同的版本——也许一个具有's方法viewForRootVc中指定的正确框架,另一个具有正确的背景颜色在's方法中指定,但两者都没有正确的框架和颜色。NewViewinitNewViewSubClassinit

我非常希望有人可以一劳永逸地为我澄清声明的属性与 ivars 的含义,以及调用 setter 来设置声明的属性与直接为其赋值。

0 投票
3 回答
133 浏览

c++ - C ++,尝试创建类时收到此消息:错误:没有在类“媒体”中声明的“无效媒体::*()”成员函数

对 c++ 来说有点新,试图创建类/函数以使我未来的代码干净。我正在使用 Code::Blocks 来创建我的程序,并且目前接收到以下 cpp 和 disctype、ripmusic 和 dvdmanip 的头文件的上述消息。编译器是 gcc,这不是主程序。

头文件:

.cpp 文件:

0 投票
1 回答
1234 浏览

objective-c - Objective-C 只读属性是否需要指定强或复制?

如果我有一个只读字符串属性,是否需要指定strong(或retain)或copy在声明中?如果我不指定,是否假定其中之一?

在我看来,所有权属性仅在您拥有 setter 时才有用。

0 投票
4 回答
162106 浏览

objective-c - Objective-C 声明的@property 属性(非原子、复制、强、弱)

当我必须对声明的属性使用每个属性时,有人可以向我详细解释:nonatomic, copy, strong, weak, 等等,并解释每个属性的作用吗?某种例子也会很棒。我正在使用 ARC。

0 投票
2 回答
186 浏览

objective-c - 为什么在我的代码中 [foo view] 的行为与 foo.view 不同?

纯属偶然,我发现调用[bar.view addSubview:[foo view]]不起作用,但[bar.view addSubview:foo.view]在以下代码中起作用。

(最后一行是因为foo有一些子视图需要在运行之前设置——特别是 a UIWebView。如果在发送消息之前它们没有被实例化,则消息最终会转到nil. 和foo。)

我认为这两者在功能上是相同的——foo.view调用相同的 getter [foo view],但实际上并非如此;点语法得到了想要的结果,而使用方括号最终将消息发送到nil.

如果你十分钟前问我,我会告诉你这两种表达方式的区别是“语法,仅此而已”。鉴于我显然错了,我需要了解我是如何错的,否则我会再次绊倒它。