나는 UIViewController
이고 strong
DataController
은 항목 목록 (itemsList
)을 포함하고 관리합니다. 후자의 초기화 방법에서는 파일에서 항목을 읽고, 웹 서비스 (및 ASIHTTPRequest
)를 통해 이들 각각에 대한 추가 정보를 얻은 다음 목록에 항목을 넣은 다음 itemsList
속성에 할당합니다.원치 않는 변수 출시 (iOS)
동기 요청을 사용하면 모든 것이 잘 작동하지만 비동기 구현이 필요합니다. 내가 해냈어 그리고 지금 내 항목이 취소됩니다 (데이터 컨트롤러가 아님). 요청에 대한 델리게이트를 따라 가면 사라집니다. 항목을 계속 유지하려면 어떻게해야합니까? 내 데이터 컨트롤러에서
: 서버 및 초기화 단지 표준 요청이
-(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
있다는 것입니다 copy
대신에 strong
속성을 만들려고했지만 아무 것도 변경되지 않았습니다.
ivar _itemsList가 질문에 정의 된 방법을 추가하십시오 –
응답 데이터가 초기화를 완료하는 데 필요하면 '초기화'메소드에서 비동기 호출을 할 수 없습니다 ... – Wain
그 중 하나를 잊어 버리십시오. –