问题标签 [associated-object]
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.
ruby-on-rails - 创建后在模型中创建关联记录
我有一个模型 MyModel,它应该在创建后创建 MyAssociation 类型的关联记录。在 MyModel 上创建后,我需要运行如下代码:
实现这一目标的最佳方法是什么?
ios - Objective-C 运行时将对象与 NSMutable 字典关联
参考这篇文章链接 ,我使用相同的概念实现了一个类似的类别,即使用 NSMutableDictionary 来存储我需要的信息。但是在原始帖子中有一件事让我感到困惑
我知道@synchronized 关键字是对多线程的保护。但是当我浏览其他示例时,大多数时候都没有使用保护。那么保护有必要吗?我也可以使用静态 dispatch_once_t 来替换 @synchronized 吗?下面是我在 .m 文件中的代码片段
django - 获取 factory_boy 中关联子记录的 id
我有一个function
带有多个的parameters
,然后是该函数的一个专用instantiation
函数,settings
每个函数的参数都有一些。所以我有一个如下结构:
在FunctionFactory
我可以factory.RelatedFactory
用来创建parameters
.
但是在FunctionInstantiationFactory
我不能使用factory.RelatedFactory(ParameterSetting)
创建ParameterSettings
,因为我无权访问在其中parameter
创建的对象FunctionFactory
,所以我无法设置parameter_setting.function_parameter_id
。
如何FunctionInstantiationFactory
查找在parameter_id
中创建的参数FunctionFactory
?我可以从 的返回值中得到它们RelatedFactory(FunctionFactory)
吗?还是我需要查看数据库?
python - 将使用 SubFactory 和 LazyAttribute 创建的对象传递给 factory_boy 中的 RelatedFactory
我factory.LazyAttribute
在SubFactory
调用中使用传入一个对象,该对象是在factory_parent
. 这工作正常。
但是,如果我将创建的对象传递给 a RelatedFactory
,LazyAttribute
则无法再看到factory_parent
and 失败。
这工作正常:
相同的调用在LazyAttribute
这里失败:
相同的LazyAttribute
调用不再能看到 factory_parent,只能访问AnotherObject
值。LazyAttribute 抛出错误:
有办法解决这个问题吗?
我不能只将 sub_object=sub_object 放入 ObjectFactory 调用中,即:
因为如果我这样做:
创建了第二个 sub_object,而我需要两个对象都引用同一个 sub_object。我试过SelfAttribute
无济于事。
ios - 如何将关联对象与枚举一起使用?
我有一个 ViewController,我使用关联对象向其中添加了两个新属性:一个枚举和一个字符串(字符串版本取自此处)
这是我的示例代码:
字符串版本可以正常工作,但枚举版本不能。而且我不确定问题是什么。
这是objc_getAssociatedObject
或 的问题objc_setAssociatedObject
。get版本好像一直都是nil,所以返回默认值One。
objective-c - 在关联对象中对“关联”对象的弱引用
以下代码导致 NSInternalConsistencyException: Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'An instance 0x7fd3a1010000 of class UIScrollView was deallocated while key value observers were still registered with it.
。
实际上,问题是当dealloc
在 Observer 上调用时,它对 UIScrollView 的引用已经被取消,并且_removeObservers
是无操作的。
我知道这可能与释放关联对象的方式有关,但这实际上从https://developer.apple.com/videos/play/wwdc2011-322/ (38:14) 中不清楚对象在弱引用被擦除之前被擦除。
我发现的一种解决方法是制作 UIScrollView 属性unsafe_unretained
。
- 有人确切知道为什么会发生这种情况吗?
- 这里推荐的解决方案是什么?
谢谢!
接着:
ruby-on-rails - Rails:更新加入的 Active Model 的属性
我是 RoR 的新手。我的问题是关于更新关联的活动模型的属性。
我有一个用户形式的页面,我可以在其中更新用户的属性,以及关联的 user_devices 的某些属性:
当我使用 update_attributes() 发布表单并更新所有属性时,它显示“ActiveModel::MassAssignmentSecurity::Error”
另一个问题是,我不知道如何命名玩具表中的“is_new”属性。它应该是:toys_is_new 吗?
我也希望更新相关玩具的属性。你能帮我解决这个问题吗?
odata - 具有关联对象但不是内联对象的 OData
我正在尝试了解 OData ...
我知道 $expand 参数,它几乎是我需要的,但是:返回的嵌入数据是高度冗余的。
这让我想到了一个问题:如何在一次调用中获取关联对象作为引用和被引用对象的单独列表?
还是有什么重要的我还不明白?
objective-c - 如何将选择器 (SEL) 与 objc_setAssociatedObject 一起使用?
我可以在不将其转换为 NSString 类型的情况下将 SEL 类型的参数与 objc_setAssociatedObject 一起使用吗?
目前我正在使用这段代码:
objc_setAssociatedObject(thirdPartyObject, &kSelectorKey, NSStringFromSelector(selector), OBJC_ASSOCIATION_RETAIN);
转换为 NSString 有效,但感觉不对。必须有更合适的解决方案。
swift - NSManagedObjectContext 释放问题 - (Swift | Associated Objects)
我希望有人能解释为什么当源/主机对象被释放时,以下示例中的关联对象不会自动释放。下面的示例代码有些做作(提前道歉),但它解释了我的问题。
该示例假定 CoreData 实体Product
具有字符串属性sku
和 Xcode 模板提供的默认 CoreData 堆栈:
当createProduct
函数被执行时,一个新的 PrivateQueueConcurrencyType Managed Object Context (MOC) 将被新的Product
Managed Object (MO) 出售和使用。上面的代码工作正常 - 到目前为止。
然而!如果我将createProduct
函数的前两行组合起来:
然后应用程序将崩溃并try newProduct.managedObjectContext?.save()
带有EXC_BAD_ACCESS
.
乍一看,这似乎有点奇怪——因为我们所做的只是重构了代码。深入研究文档,该managedObjectContext
属性被声明为unowned(unsafe)
. 这可能意味着创建的 MOC 已被释放,并且我们有一个悬空指针(如果我的假设错误,请纠正我)。
为了确保 MOC 不会被释放,我尝试将它与 MO 本身关联起来。 newProduct
:
这似乎非常有效 - 直到我签入 Instruments。看起来,当Product
MO 被释放时,现在关联的 MOC 不是(当源对象被释放时不应该自动释放吗?)
我的问题是:有人可以解释阻止它被释放的 MOC 的附加参考在哪里吗?我是否在 MO 和 MOC 之间创建了保留周期?