NSArrays在保存时保持排序,然后从plist中检索

时间:2014-09-16 19:32:55

标签: ios objective-c sorting nsmutablearray nsarray

简单的问题当保存到plist然后检索时,NSArrays会保持排序吗?

当我从我的plist中检索我的数组时,我有一个排序问题,所以我很好奇。

我认为这条线路也可能存在问题。这些是否按照titleArr?

的顺序维护标题的顺序
NSMutableArray *allTitles = [[NSMutableArray alloc] init];
[allTitles addObjectsFromArray:titles];
[allTitles addObjectsFromArray:titleArr];

我如何保存到plist

imageInfo = [[NSMutableArray array] init];

    NSMutableArray *Listing = [NSMutableArray array];
    [imageInfo addObject:Listing];

    NSDictionary *Images = [NSDictionary dictionaryWithObjectsAndKeys:
                            allTitles, kKeyTitle,
                            allMediaUrls, kKeyThumbUrl,
                            allWidths, kKeyThumbWidth,
                            allHeights, kKeyThumbHeight,
                            nil];
    [Listing addObject:Images];


    NSArray *sysPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory ,NSUserDomainMask, YES);

    NSString *documentsDirectory = [sysPaths objectAtIndex:0];

    NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"image.plist"];

    NSLog(@"Plist File Path: %@", filePath);

    BOOL didWriteToFile = [imageInfo writeToFile:filePath atomically:YES];

    if (didWriteToFile) {
        NSLog(@"Write to .plist file is a SUCCESS!");
    } else {
        NSLog(@"Write to .plist file is a FAILURE!");
    }

2 个答案:

答案 0 :(得分:1)

如果titlestitleArr的排序比allTitles还要排序,则为是。

首先添加标题的所有对象,并且将titleArr添加为addObjectsFromArray方法,因为plist方法开始在接收数组的末尾添加对象数组。

以下是来自Apple Docs

的更多信息
  

将另一个给定数组中包含的对象添加到   接收数组的内容。

所以是{{1}}将排序数组。

答案 1 :(得分:0)

严重错误:

imageInfo = [[NSMutableArray array] init];

[NSMutableArray array]返回初始化和自动释放的数组。 向该阵列发送init消息不是一个好主意。