【问题标题】:NSValueTransformer for C structs in Core Data用于核心数据中 C 结构的 NSValueTransformer
【发布时间】:2012-07-10 17:12:54
【问题描述】:

如何为 C 结构创建 NSValueTransformer,例如 Core Data 中的 CGRect

显然transformedValue & reverseTransformedValue 需要和id。有没有办法通过void*,或者更好的方法来做到这一点?

【问题讨论】:

标签: objective-c cocoa core-data nsvaluetransformer


【解决方案1】:

使用 NSValue 包装 C 指针。

[NSValue valueWithPointer:&struct]

专门针对CGRect,可以使用

[NSValue valueWithCGRect:rect]

在 UIKit/UIGeometry.h 中声明

【讨论】:

  • 不幸的是,这似乎不适用于CATransform3D(确实可以被NSValue 装箱):-[NSKeyedArchiver encodeValueOfObjCType:at:]: this archiver cannot encode structs。有什么建议吗?
  • 我什至写了一个 NSValueTransformer 子类来将 CATransform3D 转换为 NSString 并返回并将其设置为转换器类,但结果相同......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-28
  • 2021-05-17
  • 1970-01-01
相关资源
最近更新 更多