ios - 写入和读取自定义对象到文件IOS
<p><p>我有这个对象。</p>
<pre><code>@interface SeccionItem : NSObject <NSCoding>
{
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]