2012-04-19 2 views
3

iCloudを無効にしてもNSMetadataQueryが機能しないようです。私は、有効な検索URLに入れて、それが終わっとして登録したことがない:iCloudが無効のときにNSMetadataQueryを使用できますか?

//Check for iCloud 
NSURL *ubiq = [[NSFileManager defaultManager] 
       URLForUbiquityContainerIdentifier:nil]; 
if (ubiq) { 
    NSLog(@"iCloud access at %@", ubiq); 
    self.query = [[[NSMetadataQuery alloc] init] autorelease]; 
    [self.query setSearchScopes:[NSArray arrayWithObject: 
           NSMetadataQueryUbiquitousDataScope]]; 
    _isiCloudEnabled = YES; 
} else { 
    NSLog(@"No iCloud access"); 
    //Get the doc directory 
    NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; 
    self.query = [[[NSMetadataQuery alloc] init] autorelease]; 
    [self.query setSearchScopes:[NSArray arrayWithObjects: 
           [NSURL fileURLWithPath:path],nil]]; 
    _isiCloudEnabled = NO; 
} 

NSPredicate *pred = [NSPredicate predicateWithFormat: 
        @"%K like %@", NSMetadataItemFSNameKey, @"*.adoc"]; 
[self.query setPredicate:pred]; 
[[NSNotificationCenter defaultCenter] 
addObserver:self 
selector:@selector(queryDidFinishGathering:) 
name:NSMetadataQueryDidFinishGatheringNotification 
object:self.query]; 

[self.query startQuery]; 

はqueryDidFinishGathering:と呼ばれることは決してありません。 iCloudを有効にすると、常に呼び出されます。どんな考え?

答えて

0

iOS5以降、NSMetadataQueryの検索範囲は、ユビキタスなもの(NSMetadataQueryUbiquitousDocumentsScopeNSMetadataQueryUbiquitousDataScope)にしか設定できないため、iCloudを無効にして使用することは役に立たなくなります。私の意見のNSMetadataQueryクラスでは、おそらく理由queryDidFinishGatheringを推測しているがために、クエリの範囲を、ローカルディレクトリが(:)しかし、疑い深く、例外やエラーを投げていない)はまだサポートされていませんと呼ばれることはありませんと

ではありませんNSPredicateの完全移植のiOSに、OSXでより多くのスコープを設定することができ、より多くの種類が、私は同じ問題に直面していたが、私はこのプロジェクトでARCを使用しています

2

などNSSortDescriptors仕事を、設定することができます。これは、ivarをself.query変数に設定することで解決されます。

@property (nonatomic, strong) NSMetadataQuery *query; 

私はあなたがARCを使用していないとして、あなたの問題のためだと思う、あなたは物事を次の操作を行う必要があるかもしれません。

  1. は、自動解放を削除し、手動での作業を終えたときに離します。
  2. あなたがプロパティを設定する必要が
  3. @property (nonatomic, retain) NSMetadataQuery *query; 
    
関連する問題