从Web加载内容的最佳方式

时间:2010-10-18 00:15:33

标签: iphone ipad header xib

我有一个显示10个图像的应用程序,每个图像都与一个按钮和一个URL链接相关联。我想发布这个应用程序,但能够通过网络更新图像和链接,而无需对应用程序进行更新。

我知道我可以像这样从网上提取图片:

NSURL *url = [NSURL URLWithString: @"http://example.com/image.png"];
 NSData *data = [NSData dataWithContentsOfURL: url];
 UIImage *image = [UIImage imageWithData: data];
 UIImageView *imageView = [[UIImageView alloc] initWithImage: image];

我认为也可以从网上拉一个plist?

.xib和.h / .m文件怎么样?我可以让我的应用程序在每次运行时检查新的.xib / .h / .m文件的某个URL,当我在两周内将这些文件上传到该URL时,运行该应用程序的人会让它加载新的文件?

所以不要像我这样从我的资源加载一个类/ xib:

UIViewController *nextController = [[ClassName alloc] initWithNibName:@"ClassName" bundle:nil];

我会以某种方式用从网络上提取的新数据替换ClassName吗?

我见过的应用程序可以从网上获取新数据(通常是简单的图像/文本 - 例如Doodle Jump中的偶然“新闻”更新),而无需用户下载应用程序的更新。任何帮助实现这一目标的第一步都将非常感谢...谢谢!

2 个答案:

答案 0 :(得分:2)

将您应用中捆绑的所有起始材料存储在资源文件夹中。在第一次加载时,以编程方式将所有材料复制到包库路径。您的应用程序应该只处理库目录中的数据。当您的应用首次连接到网络时,您可以将任何新数据保存到用户的库路径并覆盖旧的内容。

在编译之后写入应用程序包目录是不可能的,因为这会打破Apple的签名。

这显然是一个高级别的建议。如果不知道你想要做什么,很难给出详细的答案。但是,允许下载和存储数据,而不是在应用程序包内。不幸的是,你不能发送新的.h / .m文件或​​xib。

答案 1 :(得分:1)

您可以从网上加载资源,但无法在正在运行的应用中“编译”任何内容,因此.m / .mh / .xib无法使用。

您当然可以加载plist(或其他数据文件)并使用它来引用不同的图像和链接。 (在这个意义上,上面的http://example.com/image.png可能是动态的。)