菜鸟教程小白 发表于 2022-12-13 02:51:37

ios - 写入和读取自定义对象到文件IOS


                                            <p><p>我有这个对象。</p>

<pre><code>@interface SeccionItem : NSObject &lt;NSCoding&gt;
{
    NSString * title;
    NSString * texto;
    NSArray * images;
}

@property (nonatomic,strong) NSString * title;
@property (nonatomic,strong) NSString * texto;
@property (nonatomic,strong) NSArray * images;

@end
</code></pre>

<p>有了这个实现</p>

<pre><code>@implementation SeccionItem
@synthesize title,texto,images;


- (void) encodeWithCoder:(NSCoder *)encoder {
    ;
    ;
    ;
}

- (id)initWithCoder:(NSCoder *)decoder {
    title = ;
    texto = ;
    images = ;
    return self;
}

@end
</code></pre>

<p>我想将一个填充了这些对象的数组保存到磁盘上的一个文件中。</p>

<p>我正在这样做:</p>

<p>写</p>

<pre><code>;
</code></pre>

<p>阅读</p>

<pre><code>NSArray *entries = ;
return entries;
</code></pre>

<p>但是读取的数组总是空的,我不知道为什么,我有一些问题。</p>

<p>我应该使用什么格式的文件路径?在 toFile:?</p>

<p>对象上的 NSArray 是用 NSData 对象填充的,所以我可以对它们进行编码吗?</p>

<p>我真的迷路了。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>查看 NSKeyedArchiver 的文档,尤其是 <a href="https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSKeyedArchiver_Class/Reference/Reference.html" rel="noreferrer noopener nofollow">archiveWithRootObject:toFile:</a>方法。</p>

<p>路径基本上是文件应该存储的位置,包括文件名。例如,您可以将数组存储在应用程序的 Documents 文件夹中,文件名为 <em>Storage</em>。下面的代码片段很常见:</p>

<pre><code>NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docDir = ;
NSString* docFile = ;
</code></pre>

<p>使用 <em>NSSearchPathForDirectoriesInDomains</em> 方法代替绝对路径,因为 Apple 可以根据需要更改 Documents 文件夹路径。</p>

<p>您可以使用上面的 docFile 字符串提供给 archiveWithRootObject:toFile: 方法的 toFile 参数。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 写入和读取自定义对象到文件IOS,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/16935321/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/16935321/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 写入和读取自定义对象到文件IOS