无法使用目录名称删除NSMutableArray中的项目

时间:2012-11-07 16:54:25

标签: iphone nsmutablearray

我想检查文档文件夹中的所有目录,并列出名称不在名为eventList的NSArray中的目录。 Evenlist是ALAssetsGroup的数组。 这是代码:

    NSLog(@"eventList %@",eventList);

    NSFileManager *fileManager = [NSFileManager defaultManager];        
    NSMutableArray *tagsFolderList = [[NSMutableArray alloc] init];
    tagsFolderList = [[fileManager contentsOfDirectoryAtPath:tagsPath error:nil] mutableCopy];

    NSLog(@"tagsFolderList %@",tagsFolderList);


    if(([tagsFolderList count] > 0) && ([eventList count] > 0))
    {
        for (int i=0; i<[eventList count]; i++) {
            NSString *eventName = [[eventList objectAtIndex:i] valueForProperty:ALAssetsGroupPropertyName];
            NSLog(@"eventName %@",eventName);

            [tagsFolderList removeObjectIdenticalTo:eventName];
        }

以下是日志:

    eventList (
        "ALAssetsGroup - Name:19 ao\U00fbt 2012, Type:Event, Assets count:27",
        "ALAssetsGroup - Name:21 ao\U00fbt 2012, Type:Event, Assets count:8",
        "ALAssetsGroup - Name:2 nov. 2012, Type:Event, Assets count:12",
        "ALAssetsGroup - Name:4 nov. 2012, Type:Event, Assets count:9"
    )
    tagsFolderList (
        "1 nov. 2012",
        "19 aou\U0302t 2012",
        "2 nov. 2012",
        "4 nov. 2012",
        "6 oct. 2012"
    )
    eventName 19 août 2012

即使ALAssetsGroup和目录的名称相同,也就是“4 nov.2012”,即我无法删除该对象。我只是尝试了很多字符串编码转换而没有成功。

有什么建议吗?

此致

1 个答案:

答案 0 :(得分:1)

removeObjectIdenticalTo:比较对象地址,而不是字符串值。因此,即使字符串是相同的字符运行,它们也必须是完全相同的对象。如果要比较具有相似字符运行的那些,请使用NSString的isEqualToString方法。