1

システム内のディレクトリ/ファイルの情報を取得するために、ココアアプリでこれを試みています。このメソッドは、いくつかのキー属性がリストされた辞書を返します

-(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' のパラメーターに送信しています」という警告メッセージが表示されました。それらを文字列に型キャストしようとしていますが、まだ存在しています。どこが間違っているのかわかりませんでした。

4

2 に答える 2

3

私の問題はこれを行うことで解決されます

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

とにかく、あなたの助けに感謝します。

于 2013-08-23T06:36:27.580 に答える
0

linkbinarywithlibrery から「CFNetwork」フレームワークを追加してください。必要に応じて他のフレームワークを確認してください。

于 2013-08-10T10:33:25.913 に答える