问题标签 [nsvaluetransformer]
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 - 使用转换后的值对 NSTableColumn 进行排序
我的班级有一个属性是enum
. 此属性绑定到NSTableColumn
.
为了确保NSTableColumn
显示正确的字符串表示,而不是显示数字 0、1 和 2,我使用NSValueTransformer
.
因此Unknown
变成“未知操作系统”。Win
变成“MS Windows”并OSX
变成“OSX 10.8”。表格列正确显示了这些值。
我需要使用转换后的值对列进行排序。如果我使用
该列按以下顺序排序:
未知操作系统
MS Windows
OSX 10.8
这确实是有道理的,因为 0 < 1 < 2。但我要求它使用它们的字符串对应物进行排序,这将使它:
MS Windows
OSX 10.8
未知操作系统
如何在不更改枚举顺序的情况下做到这一点?
macos - NSImage 与 NSValueTransformer 一起使用时具有不透明度
我试图根据核心数据之外的枚举值显示一个 NSImage 。我在绑定到我选择要显示的图像的值的 NSImageCell 上使用值转换器。
不幸的是,当使用 NSValueTransformer 时,图像会得到它不应该具有的不透明度,并且可以完美地工作。
这是我的 NSValueTransformer 子类的摘录:
对应的静态 NSImage 定义:
和我使用的枚举:
下面是实际应用程序的屏幕截图,其中一个没有 NSValueTransformer,但在 IB 中分配了一个静态 NSImage。所以它不是具有 alpha 或其他东西的 PNG。来自不同位置的三个不同图像会发生这种情况。
实际应用 http://imageshack.us/a/img195/2492/appqe.png 静态图片 http://imageshack.us/a/img27/3289/43084671.png
xcode - 尝试编辑时,tableview 上的 Coredata 绑定 NSNumber 列崩溃
我已经创建(没有编码)一个 coredata 实体和一个可可窗口,该窗口在可编辑的 tableview 中显示行,该 tableview 绑定到绑定到实体的数组控制器。表中有一个 NSNumber 列,没有自定义值转换器在编辑时崩溃,因为表格视图中的列试图保存为字符串。
因此,我创建了一个自定义值转换器,将其链接到该列,但现在出现不同的错误。这是我的代码:
这是我单击该列后立即得到的错误:
我在这里做错了什么?我只想能够输入一个数字并将其保存回实体。非常感谢
ios - 将可转换的 NSAttributedString 保存到 Core Data 中时发生非常奇怪的崩溃
我有一个使用 Core Data 的项目。它有一个 Note 对象,该对象具有一个称为内容的可转换属性。我将 NSAttributedString 存储到此属性中。该属性在第一次保存时保存得很好,但是当我尝试创建第二个笔记对象时,应用程序崩溃了。
这是我用来保存的代码:
同样,当持久存储中没有对象时,此代码可以毫无问题地保存。
当我尝试保存新对象时(在非空存储中:)首先抛出此异常(我为所有异常设置了断点)-[NSConcreteMutableAttributedString compare:]: unrecognized selector sent to instance 0x1759e8b0
然后当我继续时,我得到了这个:
2013-07-18 10:17:39.011 Meta[2417:60b] CoreData:错误:严重的应用程序错误。在核心数据更改处理期间捕获到异常。这通常是 NSManagedObjectContextObjectsDidChangeNotification 观察者中的一个错误。-[NSConcreteMutableAttributedString compare:]: 无法识别的选择器发送到实例 0x1759e8b0 与 userInfo (null) 2013-07-18 10:17:39.014 Meta[2417:60b] *** 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“ -[NSConcreteMutableAttributedString compare:]:无法识别的选择器发送到实例 0x1759e8b0'
我还使用了一个 NSManagedObject 子类,它的实现方式如下:
同样,内容是我试图存储属性字符串的地方
我尝试使用默认的 NSValueTransformer 和我自己的子类。两者都会导致同样的问题。
编辑:这是我的价值转换器的实现:
编辑:这是回溯:
ios - 从 NSValueTransformer 内部引用 NSManagedObject 实体
我正在使用 NSValueTranformer 加密某些核心数据属性。这一切都很好,除了我需要能够根据 NSManagedObject 使用不同的加密密钥。无论如何我可以从我的变压器类中访问这个实体吗?
用例是我有多个具有不同密码的用户可以访问不同的 NSManagedObject 实体。如果我对所有对象使用相同的加密密钥,那么有人可以在 SQL 数据库中重新分配拥有它们的人,他们仍然会解密。
关于解决此问题的最佳方法的任何想法?
编辑:我应该提到我在 iOS 中这样做。
objective-c - 核心数据 - 如何在不触发错误的情况下检查对象关系是否存在
有一个对象 A 和一个对象 B。对象 B 具有一个可类型转换的属性(图像),以及一个与对象 A 的关系。对象 A可能与一个且只有一个对象 B 有关系,或者它可能不会。
当我枚举我的对象 A 数组时,我想检查每个对象 A 是否有一个对象 B。但是,我不想触发对象 B 的故障(这将调用反向 imageToData NSValueTransformer)。我只是想知道它是否存在。如果不将对象 B 带入内存,我该如何做到这一点?
objective-c - 在块中返回非指针对象时出现问题
我正在使用 Mantle 帮助我将模型对象转换为 JSON。我的一个对象包含一个centroid
定义如下的属性:
@property (assign) CLLocationCoordinate2D centroid;
当我处理服务器时,我收到以下格式的属性:
所以我决定实现MTLJSONSerializing
协议中可用的自定义 JSON 转换器,定义如下:
我遇到的麻烦是+ (instancetype)transformerWithBlock:(MTLValueTransformerBlock)transformationBlock
内部的方法MTLValueTransformer
接受了一个类型的块typedef id (^MTLValueTransformerBlock)(id);
,它返回一个类型的值id
或任何objective-c指针对象。
但是,我想做的是返回 CLLocationCoordinate2D 类型,它是一个标量,非id
类型。除了定义我自己的客户实现之外,transformerWithBlock:
是否有一种干净的方法可以实现这一点?
objective-c - NSValueTransformer 我可以向绑定数组添加更多对象吗?
我正在使用值转换器来转换表格内容“绑定”的内容数组,因此我可以在将值传递给视图之前对其进行编辑并且它可以工作
值中的编辑有效,并反映在 UI 中
但是当我尝试扩展数组时,而不是将表绑定到大小为 2 的数组,我想将其扩展为大小为 4,只需复制它们
这不起作用,我得到了旧数组的单元格计数如何实现我想要的?
谢谢
cocoa - 是否有用于文件大小的 NSValueTransformer?
我不敢相信这样的事情已经不存在了。是否有一些代码可以为文件大小实现 NSValueTransformer?我想在表格视图中有一列以最接近的SI 二进制倍数显示文件大小,例如“1.4MB”而不是“1,468,006”。
我能找到的最接近的是这个 SO question,但答案并不是我真正想要的。
objective-c - 如何将上下文对象传递给 NSValueTransformer
NSValueTransformer
用于转换一个值。但是,如果转换需要更多上下文信息怎么办?例如,如何NSValueTransformer
访问 nib 中的其他对象,或访问视图控制器?这不就是NSValueTransformer
要使用的吗?
例如,我想将文本视图的属性字符串绑定到员工的姓名,使用值转换器根据员工的部门格式化姓名。
到目前为止,我的解决方案是只实现一个新employeeNameForDisplay
属性左右,完全跳过值转换器。
如果这真的是最好的解决方案,我很难理解价值转换器的价值。他们真的有这么有限吗?