简而言之:如何在运行时确定id是否为CFType
我正在实现动态核心数据属性,并且在ExtendedManagedObject的willSave方法中,我想检查id值是否为CFType以将其存储到plist文件中.
如果我想保存到UIImage,那就不是免费的CF桥接(苹果文档),我收到一个错误:
2011-11-17 17:16:25.294 [490:707]保存扩展数据时出错:属性列表对格式无效(属性列表不能包含'CFType'类型的对象)
我可以用某种方法检查它,或者我必须自己实现(只是来自docs的isKindOfClass)?
我不想在NSManagedObject子类中实现访问器,我不知道我将从实体属性中获得多少URL.问题是关于运行时的动态扩展属性.
- (void)willSave
{
NSDictionary *changes = [self valueForKey:@"extendedChanges"];
if (changes!=nil) {
// merge changes into snapshot
NSMutableDictionary *dict = [[self extendedSnapshot] mutableCopy];
NSEnumerator *e = [changes keyEnumerator];
NSString *key;
while (key=[e nextObject]) {
id value = [changes objectForKey:key];
if (value==[NSNull null])
[dict removeObjectForKey:key];
else if (#ugly and I'm not shure is thread safe **else if ([value isKindOfClass:[NSArray class]] || [value isKindOfClass:[NSDictionary class]] || [value isKindOfClass:[NSDate …Run Code Online (Sandbox Code Playgroud)