0

我想检查我的文档文件夹中的所有目录,并列出那些名称不在名为 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 和目录的名称是相同的“2012 年 11 月 4 日”,即我无法删除该对象。我只是尝试了许多字符串编码转换而没有成功。

有什么建议吗?

问候

4

1 回答 1

1

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

于 2012-11-07T17:42:48.073 回答