嗨,我对 iOS 编程非常陌生(实际上已经 2 周了),我遇到了这个问题:
在我的应用程序中,我拍照并将它们放入队列中以供上传,我还没有实现上传部分,但我将上传由 ( ) 组成的对象数组(容器),NSData
但UIImageJPEGRepresentation
显然NSData
s 会消耗太多内存,所以我必须想出一些更聪明的东西,而不是持有NSData
我想要持有NSURL
的Container 类NSData
。但NSData
必须保存在我的应用程序中的某个地方,而不是相机胶卷中。
我还在为我的应用程序实现 Core Data 并且加载NSData
s 可能需要一些时间。
这是我的容器类的样子:
#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>
@interface Container : NSManagedObject
@property (nonatomic, retain) NSString * str1;
@property (nonatomic, retain) NSString * str2;
@property (nonatomic, retain) NSData * bigImageData;
@property (nonatomic, retain) NSData * thumbnailData;
@end
@implementation Container
@dynamic str1;
@dynamic str2;
@dynamic bigImageData;
@dynamic thumbnailData;
我不知道它是否有帮助,但这是我获取 UIImage 的方法:
UIImage *bigImage = [info objectForKey:UIImagePickerControllerOriginalImage];
UIImageWriteToSavedPhotosAlbum(image,self,nil,nil);
NSData *bigImageData = UIImageJPEGRepresentation(bigImage, 0.1);
//Save NSData to somewhere within my app here
因此,当我开始上传文件时,我会将 NSData 加载回内存中,直到上传完成,然后我将删除 NSData。
我希望我把我的问题说清楚了,如果你有更好的建议,请告诉我,
谢谢!