将数组保存到文件系统中(Objective-C 开发范例)

本文展示了如何在Objective-C中将包含数字和字符串的数组保存到文件系统,利用`writeToFile:atomically:`方法实现数据持久化。需要注意的是,此方法不适用于自定义对象,自定义对象需要遵循NSCoding协议或使用Core Data进行归档。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

将数组保存到文件系统中

问题
      将数组中的对象保存到文件系统中以供其他程序使用。
解决方案
       如果数组包含了数字或字符串对象的列表,那么可以将所有这些对象保存到文件系统中以供后续使用,使用writeToFile:atomically:方法可以做到这一点。注意,该方法无法处理自定义对象。自定义对象需要使用NSCoding 协议并使用归档类或Core Data(后面再举例)。

说明
       该攻略需要创建如下由字符串与数字组成的数组:

NSArray *listOfObjects = [NSArray arrayWithObjects:@"A", @"B", @"C",
                         [NSNumber numberWithInt:1], 
                         [NSNumber numberWithInt:2], 
                         [NSNumber numberWithInt:3],
                         nil];
       要想将数组保存到文件系统中,首先需要如下文件引用:
NSString *filePathName = @"/Users/Shared/array.txt";

       现在可以使用writeToFile:atomically:方法将数组内容写到Mac 文件系统中:

[listOfObjects writeToFile:filePathName
                atomically:YES];

代码
      程序清单main.m

#import <Foundation/Foundation.h>
int main (int argc, const char * argv[])
{
      @autoreleasepool {
          NSArray *listOfObjects = [NSArray arrayWithObjects:@"A", @"B", @"C",
                                   [NSNumber numberWithInt:1], 
                                   [NSNumber numberWithInt:2], 
                                   [NSNumber numberWithInt:3], 
                                   nil];
          NSString *filePathName = @"/Users/Shared/array.txt";
          [listOfObjects writeToFile:filePathName
                          atomically:YES];
      }
    return 0;
}

使用
要想使用上述代码,请从Xcode 构建并运行Mac 应用。使用Finder 找到创建的文件,位于/Users/Shared/array.txt。下面列出文本文件的内容:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
      <string>A</string>
      <string>B</string>
      <string>C</string>
      <integer>1</integer>
      <integer>2</integer>
      <integer>3</integer>
</array>

</plist>
数据以XML 格式组织为属性列表(一种存储键数据的Objective-C 格式)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值