cocoa - 可变形属性的奇怪警告

标签 cocoa core-data

我使用的是可转换属性,一切正常,而不是那些警告:

15.10.11 22:14:07,191 cdtool: CoreData: warning: no NSValueTransformer with class name 'ArrayToDataTransformer' was found for attribute 'directions' on entity 'DatabaseConnections'
15.10.11 22:14:07,191 cdtool: CoreData: warning: no NSValueTransformer with class name 'ArrayToDataTransformer' was found for attribute 'updateChoices' on entity 'DatabaseConnections'
15.10.11 22:14:07,193 cdtool: CoreData: warning: no NSValueTransformer with class name 'ArrayToDataTransformer' was found for attribute 'testingResult' on entity 'DestinationsListWeBuy'

有人可以告诉我如何消除这个警告吗? 当然,一切都是正确的,属性是可选的,可转换的。 下面是一个类实现:

#import <Foundation/Foundation.h>

@interface ArrayToDataTransformer : NSValueTransformer {

}

@end



#import "ArrayToDataTransformer.h"


@implementation ArrayToDataTransformer

+ (BOOL)allowsReverseTransformation {
    return YES;
}

+ (Class)transformedValueClass {
    return [NSData class];
}

- (id)transformedValue:(id)value {
    //Take an NSArray archive to NSData
    NSData *data = [NSKeyedArchiver archivedDataWithRootObject:value];
    return data;
}

- (id)reverseTransformedValue:(id)value {
    //Take NSData unarchive to NSArray 
    NSArray *array = (NSArray*)[NSKeyedUnarchiver unarchiveObjectWithData:value];
    return array;
}

@end

最佳答案

在调用自定义转换器之前,您必须将其注册到:

+[NSValueTransformer setValueTransformer:forName:]

...否则,运行时不知道变压器存在。

关于cocoa - 可变形属性的奇怪警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7780104/

相关文章:

objective-c - 如何从应用程序 B 访问应用程序 A 的功能

ios - 从另一个 View 重新加载 TableView

database - 如何使用swift 3在核心数据中只获取一列数据

MacOS:NSPredicate 查找 "one to one"关系不为零的地方

objective-c - NSDictionary Objective-C

objective-c - 如何检测 NSDrawer 是否会在屏幕外打开

objective-c - 应用程序沙箱:无法解析文档范围的书签;不返回任何错误

cocoa - IKImageBrowserView 中的就地标题编辑

objective-c - 删除核心数据中的实体

ios - 如何将 NSManagedObject 传递给 NSPredicate 以及如何保存一对多实体