iphone 模拟器和设备包

Posted

技术标签:

【中文标题】iphone 模拟器和设备包【英文标题】:iphone Simulator and device bundle 【发布时间】:2012-11-24 10:57:08 【问题描述】:

我正在准备一个 ios 应用程序。我正在使用以下代码

NSString * yol=[[NSBundle mainBundle]pathForResource:@"TavsiyeKitapAile" ofType:@"plist"];


NSDictionary * tka = [XMLReader dictionaryForXMLData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://www.bahcevan.org/kat.php?kat=64"]] error:nil];

[tka writeToFile:yol atomically:YES];

NSMutableDictionary * dic = [[NSMutableDictionary alloc]initWithContentsOfFile:yol];

它在模拟器上运行良好,但是当我打开它时,我看不到数据。什么都没有。我认为它与捆绑有关,但我无法解决。

【问题讨论】:

检查@"TavsiyeKitapAile" ofType:@"plist" 的拼写是否有任何变化,例如:“Plist”而不是“plist”? 我试过了,但没用 :( 【参考方案1】:

您不能写入设备包,您的设备包是只读的,如果您想保存/写入某些内容,则必须将其写入文档目录。

【讨论】:

在模拟器应用程序上的沙盒没有正确地加上它在你的主目录中,这对你是可写的。仍然......这似乎是模拟器中的一个“错误”。请向苹果提交一个关于它的错误:) 我正在解析一个 XML 并将其写入我项目的 plist 中。不可能吗? (TavsiyeKitapAile.plist 已经在我的项目中,我之前创建了它。)如果是我怎么能将它写入文档目录?【参考方案2】:

我找到了解决方案,它使用的是“文档”目录,我使用了以下代码,第一个 :)

NSArray *paths = NSSearchPathForDirectoriesInDomains(
                                                     NSDocumentDirectory,
                                                     NSUserDomainMask, YES
                                                     );

NSString *documentsDirectory = [paths objectAtIndex:0];

NSURL *yol = [NSURL fileURLWithPath:[documentsDirectory
                                     stringByAppendingString:@"/TavsiyeKitapAile.plist"]];

NSDictionary * tka = [XMLReader dictionaryForXMLData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://www.bahcevan.org/kat.php?kat=64"]] error:nil];

[tka writeToURL:yol atomically:YES];


NSMutableDictionary * dic = [[NSMutableDictionary alloc]initWithContentsOfURL:yol];

【讨论】:

以上是关于iphone 模拟器和设备包的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的 iPhone 应用程序包在更新期间没有替换旧的应用程序包?

iPhone模拟器和设备之间的屏幕标签颜色不同?

iPhone 6 设备和模拟器上的快照方法损坏

iPhone 6 上的模拟器和物理设备之间的差异

MPMoviePlayer 声音在模拟器和 ipad 设备中工作,但在 iPhone 设备中不工作

测试 iAd 在模拟器、iPhone 设备而不是 iPad 设备上显示