不兼容的指针类型将'const CFStringRef'(又名'const struct __CFString * const')发送到'id'类型的参数

时间:2013-08-10 10:09:57

标签: ios objective-c cocoa nsstring cfstring

我在我的cocoa应用程序中尝试获取系统中目录/文件的信息。 这个方法返回一个字典,其中列出了一些关键属性

-(NSDictionary *) metadataForFileAtPath:(NSString *) path {
    NSURL *url = [[[NSURL alloc] initFileURLWithPath:path] autorelease];

    MDItemRef itemRef = MDItemCreateWithURL(NULL, (CFURLRef)url);
    NSArray *attributeNames = (NSArray *)MDItemCopyAttributeNames(itemRef);
    NSDictionary *attributes = (NSDictionary *) MDItemCopyAttributes(itemRef, (CFArrayRef) attributeNames);
    CFRelease(itemRef);

    // probably it is leaking memory (attributeNames and attributes), better check with Instruments

    return attributes;
}

另一种方法......

NSDictionary *dict = [self metadataForFileAtPath];
NSString *date = [dict objectForKey:kMDItemFSCreationDate];

当我这样做时,我收到一条警告消息“不兼容的指针类型发送'const CFStringRef'(又名'const struct __CFString * const')到'id'类型的参数” 我试图将它们输入到字符串中,但它仍然存在。 我没有得到我错的地方。

2 个答案:

答案 0 :(得分:3)

我的问题通过这样做解决了

NSString * date = [dict objectForKey:@“kMDItemFSCreationDate”];

无论如何,谢谢你的帮助。

答案 1 :(得分:0)

请从linkbinarywithlibrery添加“CFNetwork”框架。如果需要,请检查其他框架。