У меня есть простой NSValueTransformer
, который должен преобразовать разделенную запятыми строку first, second, third
в массив.Итак, в моей схеме CoreData у меня есть атрибут options
, который я установил на Transformed
и указываю мой Трансформатор.
Это мой Трансформатор:
-(id)transformedValue:(id)value{
// convert it to an array
if(!value){
return nil;
} else{
NSString *languages = value;
NSArray *result = [languages componentsSeparatedByString: @", "];
// return result;
return @"test Result";
}
}
Теперь, когда я возвращаю переменнуюresult
Я получаю следующую ошибку (length
выглядит так, как будто ожидал NSString
):
... 'NSInvalidArgumentException', reason: '-[__NSArrayI length]: unrecognized selector sent to instance 0x6cc59a0'
Если я возвращаю тестовую строку выше, я получаю эту ошибку (bytes
выглядит так, как будтоожидание объекта NSData
):
... 'NSInvalidArgumentException', reason: '-[__NSCFConstantString bytes]: unrecognized selector sent to instance 0xf0780'
Похоже, есть концептуальная проблема, которую я, похоже, не понимаю.Также любопытно, что +(Class)transformedValueClass
и +(BOOL)allowsReverseTransformation
никогда не "касаются" при использовании отладчика.