- (void)parseStream:(NSDictionary *)response
{
feedItems = [AFeedlyClientStream new];
[feedItems setID:response[kFeedlyIDKey]];
[feedItems setTitle:response[kFeedlyTitleKey]];
[feedItems setDirection:response[kFeedlyDirectionKey]];
[feedItems setContinuation:response[kFeedlyContinuationKey]];
[feedItems setUpdated:[response[kFeedlyUpdatedKey] longLongValue]];
NSArray *items = response[kFeedlyItemsKey];
[feedItems setItems:[self parseEntries:items]];
[[NSNotificationCenter defaultCenter]
postNotificationName:@"DidLoadFeedItems"
object:self];
}
其中feedItems是类AFeedlyClientStream
的对象。
我的问题是:
如果我把很多时间用来调用那个方法...... feedItems = [AFeedlyClientStream new];
会释放内存吗?
或者我必须做点什么?这是一个沉重的对象。
/ *更新* / feedItems声明
AFeedlyClientStream *feedItems;
@property (nonatomic, strong) AFeedlyClientStream *feedItems;
答案 0 :(得分:1)
ARC(自动引用计数)将自动管理内存,因此您不必担心内存管理。您只需要了解一些基本内容,例如弱引用和强引用之间的区别,您必须确保不要创建强大的引用周期。但除此之外,您不需要向对象发送保留或释放消息。例如,当强引用超出范围时,ARC将自动插入这些
所以回答你的问题:
您发布的代码段完全没问题,ARC会自动做正确的事情来管理引用计数,从而为您管理内存。如注释中所述,如果将指向另一个对象的指针指定给feedItems
,则对象feedItems
引用将自动收到释放消息。这意味着如果feedItems
是唯一一个持有强引用的变量,该对象也将被释放。