问题标签 [accessor]

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 投票
1 回答
305 浏览

cocoa - 从 Core Data 中的另一个实体以编程方式在一个实体中设置一个值

在 Core Data 中,我的模型中有三个实体:Worker、Task 和 SubTask。每个都与它下面的实体有一对多的关系和一对一的逆关系。Worker有很多Task,每个Task有很多SubTask,每个SubTask有一个parentTask,每个Task有一个Worker。SubTask 有一个 startTime 属性,它在 newObject 方法中设置为当前时间,还有一个按钮在我的 SubTaskArrayController 类中触发 endSubTask 方法。endSubTask 计算 startTime 和 now 之间的时间,并为 SubTask 属性 timeWorked 设置该值。到现在为止还挺好。问题:

让所选任务的 totalTimeWorked 属性更新自身的最佳方法是什么?

当我尝试类似

[currentSubTask setValue:newTotalTime forKey:@"parentTask.totalTimeWorked"];

我得到:

[ setValue:forUndefinedKey:]:实体 SubTask 与键 parentTask.totalTimeWorked 的键值编码不兼容。

如何访问当前选中的子任务的父任务的属性?

0 投票
3 回答
2773 浏览

c# - C# set accessor 可访问程序集中的所有类型,并仅获取派生类型的评估器。如何?

此属性在没有访问修饰符的类型中(因此internal访问):

允许 SomeType 程序集中的所有类型使用getset访问器。问题:如何将访问限制为set仅从SomeType派生的类型(确实是 SomeType )?

被编译器拒绝,因为protected据说限制性低于internal(假设:与protected交集internal,但不完全包含internal--> 派生类型可以存在于 的范围之外internal)。

可以由程序集中的任何类型访问并且仅由程序集中的派生类型设置的代码是什么?

编辑:查看答案后,我想我需要添加该属性的另一个特征,因为它可能会在解决方案中有所不同:该属性的类型实际上是SomeType. 编辑后的代码是:

如果声明了属性public,则编译器会发出错误(属性类型 SomeType 无法访问属性 Length)。

0 投票
0 回答
438 浏览

apache-flex - 如何在 PHP 域对象中使用 getter 和 setter 并使用 Zend_Amf 正确传输它们

我刚开始使用Zend_Amf,到目前为止,我对它从 Flash 向服务器发送对象感到非常满意。将我的对象从服务器发送回我的 Flash 环境让我有点头疼。我的 PHP 对象主要包含具有自定义 getter 和 setter 方法的私有属性。我如何Zend_Amf知道这些属性?当将对象从服务器发送回 PHP 时,它只是尝试。有这样的注释@property吗?非常感谢任何帮助,现在我将尝试将对象转换为stdClass具有$_ecplicitType值的实例。

0 投票
1 回答
3846 浏览

objective-c - 如何从辅助线程安全地访问 NSArray 属性的内容?

我有一个维护NSArray实例变量的应用程序(使用保留/释放,而不是 GC),该变量作为属性公开,如下所示:

我想从辅助线程访问该数组的内容,该辅助线程使用-performSelectorInBackground:withObject:. 在辅助线程的执行过程中,数组可能并且确实很可能会发生变化。

在辅助线程中,我想做这样的事情:

通过阅读线程文档,似乎我应该能够@synchronized在访问器中使用该指令,如下所示:

这是我需要做的所有事情来确保线程安全,还是更复杂?

更新:我随后在 Apple 网站上找到了一篇很好的文章,深入解决了这个问题:http: //developer.apple.com/mac/library/technotes/tn2002/tn2059.html

0 投票
4 回答
100 浏览

php - 如何在 PHP 中实现此功能?

访问不存在的成员时,自动创建对象。

是否可以?

0 投票
3 回答
299 浏览

objective-c - Objective-C :: 使用方法改变对象

我有一个名为“CardSet”的类,其中包含一个 NSMutableArray* cardSet 来保存“卡片”,我将其扩展为“DeckCards”。我希望“CardSet”有一个名为“(void)addCard:(Card*)”的方法(以及类似的方法“removeCard”)。我想要“addCard”来访问和设置cardSet。更好的是我想使用“addCard”方法来初始化cardSet。类文件“CardSet.h”内容如下:

方法文件内容如下:

这编译得很好。我想使用它的“addCard”方法初始化一个“DeckCards”实例 52 次。当我在 DeckCards setter 方法中调用 addCard 52 次并询问其“cardSet”的大小时,我返回 0。

这似乎是范围或权限问题?“addCard”方法可以有任何setter权限吗?setter 参数必须与返回值和相应的成员类型相同吗?

[我可以通过在“DeckCard”之外创建一个 NSMutableArray 对象“deck_cards_temp”来解决上述问题,向其中添加 52 张卡片,然后通过从“CardSet”继承的设置器将其传递给我的“DeckCards”实例的成员。这不是很满意!]

你有什么建议?非常感谢您的帮助和耐心。

0 投票
3 回答
1138 浏览

c# - 我可以在结构上创建访问器以自动转换为其他数据类型吗?

是否可以执行以下操作:

所以如果有人试图这样做,

0 投票
2 回答
964 浏览

c++ - 带有重载 = 运算符的 C++ 包装器

我正在尝试围绕int开发一个非常简单的(目前)包装类,并希望重载 = 运算符以实现如下所示:

但是,我正在收集,这是不可能的。实现 setter 非常简单,例如:

但是,从我收集的一些谷歌搜索来看,没有办法以这种方式做吸气剂。我的理解是,这是因为 = 运算符只能被覆盖以分配变量,并且由于int是原始类型,我们不能覆盖其默认的 = 实现。这个对吗?如果没有,我该如何编写吸气剂?

如果这是正确的,是否有人对类似的东西有任何优雅的建议?关于我能找到的最接近的是重载转换运算符:

尽管对我来说这似乎毫无意义,因为它几乎不比简单的getVal()方法好。

感谢您的任何建议!

0 投票
1 回答
413 浏览

c# - 如何使用 CodeDom 更改访问器的可访问性?

在 C# 中,您可以对属性的访问器拥有更多限制性访问器,如下所示:

使用 CodeDom 生成代码时如何实现这一点?

0 投票
4 回答
1326 浏览

c# - 重复访问器调用的编译器优化

我最近发现,对于某些类型的财务计算,以下模式更容易遵循和测试,尤其是在我们可能需要从计算的各个阶段获取数字的情况下。

显然,这通常会导致在给定公式中多次调用同一访问器。我很好奇编译器是否足够聪明,可以优化这些重复调用而不会改变状态,或者这种风格是否会造成不错的性能损失。

进一步的阅读建议总是受欢迎的