Iphone IOS NSPredicate不工作
下面的示例程序:虽然同一个url它找不到url,但程序工作不正常Iphone IOS NSPredicate不工作,iphone,ios,sql,nspredicate,nsfilemanager,Iphone,Ios,Sql,Nspredicate,Nsfilemanager,下面的示例程序:虽然同一个url它找不到url,但程序工作不正常 NSDirectoryEnumerator *directoryEnumerator = [[NSFileManager defaultManager] enumeratorAtPath:kDocdir]; for (NSString *pathi in directoryEnumerator) { NSLog(@"fileManager_url = %@",[self Doc_Del:pathi]); NSPre
NSDirectoryEnumerator *directoryEnumerator = [[NSFileManager defaultManager] enumeratorAtPath:kDocdir];
for (NSString *pathi in directoryEnumerator)
{
NSLog(@"fileManager_url = %@",[self Doc_Del:pathi]);
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"url == %@",[self Doc_Del:pathi]];
[fetchRequest setPredicate:predicate];
NSArray *fetchedObjects = [context executeFetchRequest:fetchRequest error:nil];
Artist *url_Databse = [self.fetchedResultsController objectAtIndexPath:self.indexPath_k];
NSLog(@"Database_url = %@",url_Databse.url);
if ([fetchedObjects count] > 0) {
NSLog(@"foundurl = %@",((Artist *)[fetchedObjects objectAtIndex:0]).url);
}else{
NSLog(@"url not found");
}
}
产出:
2013-04-25 15:37:43.256 Player[36436:907] fileManager_url = /alizée -öş mèxico - final j'en
2013-04-25 15:37:43.272 Player[36436:907] Database_url = /alizée -öş mèxico - final j'en
2013-04-25 15:37:44.107 Player[36436:907] url not found
当url中包含特殊字符时,无法正常工作。为什么会这样?谢谢…HFS文件系统使用分解字符,例如,文件名中的é存储为两个字符e+'U+0301,并结合了尖锐的重音。使用precomposedStringWithCanonicalMapping规范化目录枚举中的文件名应该会有所帮助。是否尝试将特殊字符放在单引号内?所以你的谓词应该是@url='%@。是的,我试过了。这样不行