1

NSMetadataItemFSCreationDateKeyiCloud から配列内のファイルのリストを取得しています。そのファイルをまたはのいずれかで並べ替えますNSMetadataItemFSContentChangeDateKey。しかし、与えられた通りに戻っていませんNSSortDescriptor

これが私のコードです。何か不足している場合や追加する必要がある場合は、提案してください。

-(void)getiCloudData
{

[appdel.metadataQuery setSearchScopes:[NSArray arrayWithObjects: NSMetadataQueryUbiquitousDocumentsScope,NSMetadataQueryUbiquitousDataScope ,nil]];
[appdel.metadataQuery setPredicate:[NSPredicate predicateWithFormat:@"%K LIKE '*'", NSMetadataItemFSNameKey]];

NSSortDescriptor *sortDescriptor = [[[NSSortDescriptor alloc] initWithKey:NSMetadataItemFSCreationDateKey
                             ascending:FALSE] autorelease];
NSArray *sortDescriptors = [NSArray arrayWithObjects:
                            sortDescriptor,
                            nil];
[appdel.metadataQuery setSortDescriptors:sortDescriptors];

[[NSNotificationCenter defaultCenter] addObserver:self
                                     selector:@selector(queryDidReceiveNotification:)
                                         name:NSMetadataQueryDidFinishGatheringNotification
                                       object:appdel.metadataQuery];
[[NSNotificationCenter defaultCenter] addObserver:self
                                     selector:@selector(updatequeryDidReceiveNotification:)
                                         name:NSMetadataQueryDidUpdateNotification
                                       object:appdel.metadataQuery];
   [appdel.metadataQuery enableUpdates];
   [appdel.metadataQuery startQuery];
}

ありがとう。

4

1 に答える 1

1

私はNSMetadataItemFSCreationDateKey常に nil を返すと信じています。 this を参照してください。

今、私は でソートしませんがNSMetadataItemFSContentChangeDateKey、クエリ結果が得られたときに NSMetadataItem から valueForAttribute: を使用してクエリを実行し、その時点で正常に動作します。だからあなたの努力をに集中してくださいNSMetadataItemFSContentChangeDateKey

クエリ結果を並べ替えて取得できない場合、考えられる方法の 1 つは、結果を取得した後で、クエリ結果を処理するときに結果を並べ替えることです。過去に珍しいソート要件があったときにそれを使用しました。

于 2013-12-01T08:26:45.940 に答える