问题标签 [kvc]
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 - 从嵌套在 NSArray 中的 NSDictionarys 获取特定的数据字段
我有一个嵌套字典数据的数组,如下所示:
我想从foo
每本词典中挑选出来。想要的结果是这样的:
我已经尝试使用[myArray valueForKey @"@customFilterForFoo"]
,并在 NSDictionary 上实现了customFilterForFoo
for 类别,但这最终得到*** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<__NSCFArray 0x6b81a10> valueForUndefinedKey:]: this class is not key value coding-compliant for the key customFilterForFoo.'
我怎么能做这样的事情?谢谢!
iphone - 为什么 NSUserDefaults 不愿意保存我的 NSDictionary?
我正在使用 KVC 序列化一个NSObject
并尝试将其保存到NSUserDefaults
,Attempt to insert non-property value
当我尝试存储我的NSDictionary
.
以下是相关对象的属性MyClass
:
当需要保存 MyClass 时,它会出现在此处:
产生这个输出:
如您所见, 中的所有对象dict
都是属性列表值,其所有键都是NSString*
. 为了执行此操作,我缺少什么琐事?还是我应该放弃并使用writeToFile
或类似的?
c# - Apple 的键值编码 - 有人可以向 C# 开发人员解释为什么我需要这个以及它的作用吗?
在通过 Monotouch 切换到 iOS 开发之前,我使用了 ObjectiveC。自从我想到一件事“键值编码”(KVC)。我一直不明白它有什么用,它背后的魔力是什么。
据我了解,它只是名称和值的集合,例如 .NET 的NameValueCollection
: 而不是设置anObject.Address = "An address Value"
你会写anObject.Properties["Address"] = "An address value"
. 伟大的。所以呢?因为这对我来说似乎太容易了,所以我确信这不可能。
还是因为 .NET 有反射,因此不需要键值编码之类的东西?我可以获取“ anObject
”的类型并使用反射循环其所有属性并查找名为“地址”的属性,然后使用反射设置值。这可能是KVC的类比吗?
我希望有人是 ObjC 和 C#/.NET 方面的专家,他可以向我解释好处是什么,以及它将如何转化为 .NET。请不要只将我指向 Apple 的文档。我知道这一切。我试图通过不了解 KVC 来了解我的编码生活中是否缺少某些东西?还是我可能在 .NET 中使用了类似的东西,但不知道如果我使用的是 ObjC,它会转化为 KVC?
cocoa - 可可,跨“多对多”关系绑定
我有一个模型,它本质上是三个实体:制造商 <---->> 模型 <---->> 汽车
制造商实体具有属性“名称”
模型实体具有属性“名称”
Car 实体具有“注册”和“里程”属性
我有一个表格视图,它在每一行显示汽车注册、里程、型号和制造商,很容易通过以下方式绑定:
我有另一个表格视图,我想在其中显示制造商和他们所有汽车的总里程。
所以我绑定的第一列是:
然后尝试绑定总里程时出现我的问题。我尝试通过以下方式访问它:
但这似乎不起作用:(我是否以完全错误的方式解决这个问题?或者我是否需要向我的制造商、模型或汽车类添加一些方法?
非常感谢
编辑:更多信息
奇怪地将一个单独的表绑定到
工作,虽然日志中仍然抛出一个错误: [<_NSFaultingMutableSet 0x1dbbb0> addObserver:forKeyPath:options:context:] is not supported。关键路径:@sum.milage
iphone - 如何使用字符串名称访问 UINavigationController
我的应用程序有 navController
在运行时我有 NSString *propertyName = @"navController";
我知道它是一种 UINavigationController
如何使用字符串名称访问 UINavigationController
formatting - 使用KVC将数字格式化为两位小数?
下面的代码将滑块输出连接到窗口中的标签。连接有效。但是,我无法格式化数字显示。例如,我只想显示两位小数。我在任何地方都找不到示例。谢谢
ios - Core Data 中的自定义访问器方法,为什么要使用 KVO?
一个典型的自定义访问器方法可以写成如下:
的意思就很清楚了setPrimitiveName
。它允许您在没有 KVC 的情况下访问“原始”变量(防止访问器内部的运行循环)并设置传入的值。同样的观察可以应用于 getter。
从文档中可以清楚地看出setPrimitiveName
禁用更改通知方法:willChangeValueForKey
和对应方法。
现在我的问题如下:为什么需要将该方法包装在willChangeValueForKey:
和didChangeValueForKey:
方法中?
阅读那里的核心数据编程是这样写的:
NSManagedObject 对建模属性禁用自动键值观察 (KVO) 更改通知,并且原始访问器方法不会调用访问和更改通知方法。对于未建模的属性,在 Mac OS X v10.4 Core Data 上也禁用了自动 KVO;在 Mac OS X v10.5 及更高版本上,Core Data 采用了 NSObject 的行为。
为什么我需要通知我已准备好访问密钥(访问器或实例变量),然后我已经完成了它?谁被告知?
希望我的问题很清楚。先感谢您。
iphone - 使用 NSMutableDictionary 的内容创建一个 NSManagedObject(可能用 NSCFString 代替数字)
我想用 NSMutableDictionary 和 Visa Versa 的内容创建一个 NSManagedObject。KVC 在 NSManagedObject 中无法正常工作,所以我无法使用
这里 managedObject 有一个属性“NSNumber *testKey”
我有来自 web 服务的响应,我必须将其存储在我的应用程序的 sqlite DB 中,为此我正在使用核心数据,所以我有名称为“地址”的实体,其属性包括城市、州等(所有字符串都带有邮政编码为诠释)。
我有一个类来解析 JSON 响应以获取字典,但我不知道如何从该字典中创建托管对象并保存到我的 sqlite 数据库中。
提前致谢,
约格什
iphone - valueForKeyPath 的返回类型:?
这可能是我的试点错误,但我有点困惑为什么它不返回一个 int (因为那是由键路径标识的属性的类型)。valueForKeyPath: 是否返回一个对象,谁能解释一下。
.
objective-c - 了解简单的集合运算符
我正在阅读 Apple 的 Key Value Programming Guide。在主题简单集合运算符中,我读到:
以下示例返回交易中对象的交易金额平均值: NSNumber *transactionAverage=[transactions valueForKeyPath:"@avg.amount"];
我尝试编写一个可以使用上述内容的程序。以下是该程序的文件。我无法理解为什么上述内容对我不起作用。
事务.h
Transaction.m #import "Transaction.h"
事务数据库.h
事务数据库.m