데이터를 변경 가능한 배열로로드하고 자체적으로 속성으로 저장하는 다른 클래스를 초기화하는 ViewController가 있습니다. 여기 addObserver 질문, 데이터로드 여부를 확인하십시오.
내의 ViewController의 초기화 코드 :-(id) initWithCollectionID:(NSString *)aCollectionID {
if (self = [super init]){
collectionID=aCollectionID;
dataSource = [[CollectionListDataSource alloc] initWithCollectionID:collectionID];
}
return self;
}
그것이 내가 dataSource.loaded = @ "true"로 설정 속성 dataSource.collectionItems을의로는 dataSource가 모든 데이터를로드 한 후,
addObserver를 사용하여 해당 값을보고 내 ViewController에서 함수를 실행하는 방법은 무엇입니까? 나는 가정 것 같은
무엇인가 : 다음
[self addObserver:dataSource forKeyPath:@"loaded" options:NSKeyValueChangeNewKey context:nil];
어떻게해야합니까?
NSURLRequest를 사용하는 웹 서비스와 비 블로킹 (nonblocking)을 사용하므로 실제로 일시 중지되지 않습니다. 즉,로드하고 난 다음에는 데이터를 얻은 후에 보려고하는 문제입니다. – Slee
다른 곳에서 CollectionListDataSource를 파킹시켜야하거나, 다른 메소드로 데이터를로드해야 할 것입니다. 지금은 데이터가로드 될 때까지 코드 초기화가 중지됩니다. 백그라운드 스레드에 데이터를로드하여 스레드가 완료되면보기 컨트롤러에 알리고 싶을 것입니다. – TechZen
이 예를 시도해보십시오. 핵심 데이터이지만 원칙은 동일합니다. http://developer.apple.com/iphone/library/samplecode/TopSongs/Listings/ReadMe_txt.html#//apple_ref/doc/uid/DTS40008925-ReadMe_txt-DontLinkElementID_18 – TechZen