2011-10-15 27 views
1

奇怪警告我是用變形的屬性,一切都做工精細,而不是這些警告:對變形屬性

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 
+0

我想練習TDD。有沒有一種方法可以捕捉到這個警告並做出斷言來確保這種變壓器的存在? – fatuhoku

+0

你有沒有得到答案。我有同樣的問題 – vishnuvarthan

回答

1

之前,你可以叫你有註冊一個自定義的變壓器:

+[NSValueTransformer setValueTransformer:forName:] 

...否則,運行時不知道變壓器存在。

+0

我在覈心數據UI配置中進行配置。我要在哪裏放置這個setValueTransformer和平的代碼。 – user170317