C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了objective-c – 为什么我的数据成功写入iPhone模拟器上的文件,而不是我的设备?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_618_0@
@H_618_0@
我有以下代码用户草图数据保存到文件中…

//Auto Save the sketch
NSString *filename = [NSString StringWithFormat:@"%@.png",sketchID];
CGImageRef imageRef = CGBitmapContextCreateImage(paintView.canvas.mBitmapContext);
UIImage* image = [[UIImage alloc] initWithCGImage:imageRef];
NSData* imageData = UIImagePNGRepresentation(imagE);
[imageData writeToFile:filename atomically:YES];

CGImageRelease(imageRef);
[image release];

SketchID是一个唯一的字母数字值,因此我保存的文件名示例为“p1.png”.我用来读取文件代码是……

//Load the sketch where the user left off,if there is one
if(filename != nil)
{
    UIImage* image = [UIImage imageWithContentsOfFile:filename];    

    if(image != nil)
    {
          .
          .

在模拟器上运行时,此代码似乎工作正常,但是当我在设备上运行它时,无法加载图像.我是iOS开发的新手,我还在学习如何存储文件.我的问题是……

>为什么保存/加载文件在模拟器上工作,而不是设备?
>当我创建我想要保存数据的文件名时,是否还需要在iPhone上包含一个特定目录的路径,以便正确存储数据?或者当我调用writeToFile:方法时,“p1.png”应该正常工作吗?那么imageWithContentsOfFile:方法呢?

非常感谢您的帮助!

解决方法

有很多原因,但最常见的是尝试写入设备上无法写入的位置,最常见的原因是写入应用程序包本身.

所有iPhone应用程序都在设备上“沙盒化”,这意味着它们无法访问安装应用程序的目录之外的文件系统.

您可以写入应用程序的临时目录(如果您只需要在运行期间暂时放置某些内容)或Documents目录(如果您需要更永久地存储某些内容,并且还要通过iTunes备份它).

NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
NSString* documentsDirectory = [paths objectATindex:0];
@H_618_0@

大佬总结

以上是大佬教程为你收集整理的objective-c – 为什么我的数据成功写入iPhone模拟器上的文件,而不是我的设备?全部内容,希望文章能够帮你解决objective-c – 为什么我的数据成功写入iPhone模拟器上的文件,而不是我的设备?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:ciphoneobjective不是为什么写入成功我的数据文件模拟器设备
猜你在找的C&C++相关文章
其他相关热搜词更多
phpJavaPython程序员load如何string使用参数jquery开发安装listlinuxiosandroid工具javascriptcap