小编Ren*_*tus的帖子

check id isKindOfType CFType

简而言之:如何在运行时确定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)

core-data objective-c plist

3
推荐指数
1
解决办法
5310
查看次数

标签 统计

core-data ×1

objective-c ×1

plist ×1