【问题标题】:Do NSArrays stay sorted when saved then retrieved from a plistNSArrays 保存时是否保持排序,然后从 plist 中检索
【发布时间】:2014-09-16 19:32:54
【问题描述】:

简单的问题 NSArrays 在保存到 plist 然后检索时是否保持排序?

当我从 plist 中检索数组时遇到排序问题,所以我很好奇。

我认为这也可能是这条线的问题。这些是否保持titles的顺序遵循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!");
    }

【问题讨论】:

    标签: ios objective-c sorting nsmutablearray nsarray


    【解决方案1】:

    是的,如果 titlestitleArr 已排序,那么 allTitles 也将被排序。

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

    更多信息来自Apple Docs

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

    所以是的 plist 将有排序数组。

    【讨论】:

      【解决方案2】:

      严重错误:

      imageInfo = [[NSMutableArray array] init];
      

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

      【讨论】:

      • 这就是我一直在设置可变数组的方式,是不是很糟糕?
      • 有没有更好的方法来初始化/清空它?
      猜你喜欢
      • 2014-01-24
      • 2015-05-05
      • 1970-01-01
      • 2018-07-24
      • 2012-02-23
      • 2015-07-08
      • 1970-01-01
      • 2011-07-01
      • 1970-01-01
      相关资源
      最近更新 更多