我有一个显示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中的偶然“新闻”更新),而无需用户下载应用程序的更新。任何帮助实现这一目标的第一步都将非常感谢...谢谢!
答案 0 :(得分:2)
将您应用中捆绑的所有起始材料存储在资源文件夹中。在第一次加载时,以编程方式将所有材料复制到包库路径。您的应用程序应该只处理库目录中的数据。当您的应用首次连接到网络时,您可以将任何新数据保存到用户的库路径并覆盖旧的内容。
在编译之后写入应用程序包目录是不可能的,因为这会打破Apple的签名。
这显然是一个高级别的建议。如果不知道你想要做什么,很难给出详细的答案。但是,允许下载和存储数据,而不是在应用程序包内。不幸的是,你不能发送新的.h / .m文件或xib。
答案 1 :(得分:1)
您可以从网上加载资源,但无法在正在运行的应用中“编译”任何内容,因此.m / .mh / .xib无法使用。
您当然可以加载plist(或其他数据文件)并使用它来引用不同的图像和链接。 (在这个意义上,上面的http://example.com/image.png可能是动态的。)