【发布时间】:2014-02-10 02:26:02
【问题描述】:
我有以下 NSObject 子类。如何以字节为单位找到它的“权重”?我知道指向这个对象的指针是 16 个字节(我从How much memory is reserved when initializing NSObject? 得到了那个信息)
@interface PersonRecord : NSObject
@property(nonatomic,strong) NSString *personName;
@property(nonatomic,strong) NSArray *personPhoneNumbers;
@property(nonatomic,strong) NSArray *personPhoneNumberTypes;
@property(nonatomic,strong) NSArray *personAddresses;
@property(nonatomic,strong) NSArray *personAddressTypes;
@property(nonatomic,strong) NSArray *personEmailIDs;
@property(nonatomic,strong) NSArray *personEmailIDTypes;
@property(nonatomic,strong) NSData *personImageData;
@end
例如,NSString 占用 1 个字节,NSArray 占用 'n' 个字节等。有确定的计算方法吗?
我的目标是找出如果我从 NSArray 内的 iPhone 地址簿中收集 500 个这些,它会不会占用 iPhone 的太多 RAM。
【问题讨论】:
-
这些都是指针,因此在 64 位机器上每个占用 8 个字节。我不知道对象的“开销”——16 个字节听起来很轻——我也不知道可以对大小应用什么舍入。
-
当然,这些指针指向的对象也会占用空间。
标签: ios objective-c memory-management