我有UIViewController
包含strong
DataController
和管理项目列表(itemsList
)。在后者的初始化方法中,我从文件中读取项目,通过 Web 服务(和)获取每个项目的附加信息,ASIHTTPRequest
并将项目放入列表中,然后将其分配给itemsList
属性。
使用同步请求一切正常,但我需要一个异步实现。我做到了,现在我的项目被解除分配(数据控制器没有),跟随请求等的代表也消失了。我怎样才能让物品保持活力?
在我的数据控制器中:
-(id)initDataController
{
self = [super init];
if (self)
{
NSMutableArray *myList = [[NSMutableArray alloc] init];
// Read items from file ...
for (NSString *itemName in items) {
MyItem *item = [[MyItem alloc] initWithParam:itemName];
// Here the item has already been deallocated?!
if (item) {
[myList addObject:item];
}
}
_itemsList = myList;
return self;
}
return nil;
}
在MyItem
课堂上,只有对服务器的标准请求和初始化。我认为问题应该在一些缺失strong/retain
但我不知道我应该把它放在哪里。
编辑:
列表的定义:
@property (nonatomic, copy) NSMutableArray *itemsList;
我想知道的是,这些项目nil
甚至在我可以将它们放入列表之前......所以我尝试制作属性strong
而不是copy
但没有任何改变。