我如何保存在 NSFileManager 中?

Posted

技术标签:

【中文标题】我如何保存在 NSFileManager 中?【英文标题】:How I save in a NSFileManager? 【发布时间】:2015-07-04 17:00:27 【问题描述】:

我有一个使用 json 服务的应用程序,我想将此 json 保存在 NSFileManager 中,该度量最多可以有吗?大小有限制吗?

【问题讨论】:

你不使用NSFileManager来保存文件。请说明您正在尝试做什么、尝试过什么以及遇到了什么问题。 您始终可以存档整个结构(假设每个叶子都符合NSCoding 协议),并且您可以随时从文件中恢复它。 【参考方案1】:

保存:

UIImage *pickedImage = [UIImage imageNamed:@"anyImageName"];
NSData *pngData = UIImagePNGRepresentation(pickedImage);
NSString *withFullPathName = @"yourFullPathFileName";
[pngData writeToFile:withFullPathName atomically:YES];

一旦你保存了你的数据(想象一张照片),你就可以使用 NSFileManager 来读取:

NSData* data;
NSString *fullPathName = @"yourFullPathFileName";
if ([[NSFileManager defaultManager] fileExistsAtPath:fullPathName]) 

    data = [[NSData alloc] initWithContentsOfFile:fullPathName];
    UIImage *image = [UIImage imageWithData:data];
 else 
    NSLog(@"file does not exist.");


// When you set your fullPathName try make sure it is unique for each file.

编辑

// Considering your JSON is a NSString: 

// 1. Convert the nsstring to nsdata
NSString* str = @"yourJsonAsString:...";
NSData* data = [str dataUsingEncoding:NSUTF8StringEncoding];

// You don't use nsfilemanager to save you use to read, you use "writeToFile:" to store your info.
[data writeToFile:@"yourFullPathName" atomically:YES];

// To read your file, use the example of the code above about NSFileManager.
// About the size, the only size limit is the amount of available space on the device. However is not a good pratice save a huge file. You should use core-data.

【讨论】:

读写文件时确实需要指定完整路径。 嘿@rmaddy 感谢您的评论。我改进了我的答案。 我想在 NSFilemanager 中保存一个 JSON,可以吗?如果答案是肯定的,那么它的最大尺寸是多少? @DavidTorguet 我编辑了我的代码。看看它是否回答了你的问题。谢谢。

以上是关于我如何保存在 NSFileManager 中?的主要内容,如果未能解决你的问题,请参考以下文章

我如何保存在 NSFileManager 中?

NSFileManager 创建文件失败

文件夹中的 NSFileManager

在 iOS 中使用 NSFileManager 写入文件

NSFileManager 不保存数据

Xcode iOS 生成 .png 文件并使用 NSFileManager 保存