图片太多了,app尺寸太大了

时间:2015-03-04 23:31:11

标签: ios xcode image memory size

我已经查看了这个问题(App size is too big because of too many images

我使用了tinypng.com,就像它为我的图片所建议的那样,但我的文件仍然太大了,而且有很多这样的应用,我的应用程序正在寻找可能的演出。

基本上我的计划是有一个汽车测验类型的游戏,在那里我只有几乎每辆汽车的图像(通过公共领域关闭wikicommons),photoshop所有徽章关闭(我已经完成了一千个),你试着看看你是否还能猜到这辆车。

考虑到iPad Retina分辨率,我看到这个应用程序在内存空间方面将是巨大的。

平均照片减少约300kb。这看起来很高吗?

如何制作拥有数千张质量图像的ios应用? 我是否必须创建一些无线数据库或其他东西?我对此一无所知。

此外我只编写了大约一年的代码,所以如果有任何相关的代码可能有帮助,请告诉我。

任何提示或技巧都将不胜感激。谢谢!

4 个答案:

答案 0 :(得分:1)

您可能不需要数据库或一些强大的在线系统来组织和检索您的照片,但很明显,将所有这些文件存储在设备上是行不通的。

  1. 购买虚拟主机。每月5美元,您可以获得无限的在线存储空间和带宽。 Godaddy,Bluehost,Hostgator,Dreamhost等......

  2. 使用其中一个在线文件管理器,或下载Filezilla等免费的FTP(文件传输协议)客户端。

  3. 使用他们的在线文件管理器或与FileZilla连接,只需将您的图像传输到网络服务器上。

  4. 然后,通过手头链接链接到汽车图片的网址列表,使用以下代码从网址加载图片:

    NSURL * url = [NSURL URLWithString:path];

    NSData * data = [NSData dataWithContentsOfURL:url];

    UIImage * img = [[UIImage alloc] initWithData:data cache:NO];

  5. **当您显示依赖于下载信息或照片的界面时,您应该显示一些占位符(“正在加载...”,一个框或“加载微调器”)其中的内容将继续下载图像。

答案 1 :(得分:1)

看看at this link,应提供有关如何在应用内下载图片的信息。 我已经使用了AFNetworking这很容易处理。如果您想使用它,请查看该类:

#import <AFNetworking/UIImageView+AFNetworking.h>

并检查方法setImageWithURLRequest:placeholderImage:success:failure:

要在下载后保存UIImage,您可以use this method并在apps目录中将其保密。我认为这将是最简单的方式。如果它会变大,您可以尝试使用sqlite来存储UIImages的路径。

答案 2 :(得分:0)

我有一个非常类似的问题。你可能没有犯同样的错误,但无论如何我都会分享。

我在Photoshop中使用非常大的维度制作图像,我只是将它们缩小到Xcode的故事板中所需的大小。
这导致每个图像的文件大小不必要地大。

因此,解决方案是在上传到Xcode之前将每个图像缩小到应用程序所需的精确尺寸。

这大大减少了图像的内存使用量。

答案 3 :(得分:0)

您应该使用系统文件来存储图像并将路径保存在数据库中,因为:

  1. 数据库存储通常比文件系统存储更昂贵

  2. 照片尺寸的差异会大幅增加行尺寸。

  3. 然后,最佳做法是将图像命名为相应的主键。