私のiOSアプリでは、「遅延」データ読み込みスキームを実装していますが、これはほとんどありませんが、完全ではありません。UIView
したがって、サブクラスのdrawRect
メソッドをオーバーライドします。
オーバーライドされたdrawRect
メソッド
CGContextRef context = UIGraphicsGetCurrentContext();
[self.featureSource featuresForInterval:interval completionHandler:^(NSData *data) {
// Create list of features from retrieved data
FeatureList *features = [[[FeatureList alloc] initWithData:data] autorelease];
// Render features
[self.currentRenderer renderInContext:context rect:rect featureList:featureList;
}];
赤くペイントする単純なレンダラー:
// A trivial renderer that paints red
- (void)renderInContext:(CGContextRef)context rect:(CGRect)rect featureList:(FeatureList *) featureList {
[[UIColor redColor] setFill];
UIRectFill(rect);
}
特徴検索方法 ...
- (void)featuresForInterval:(FeatureInterval *)interval completionHandler:(void (^)(NSData *))completionHandler
NSURLConnection
...の非同期デリゲート メソッドのコールバックを使用して、クラウドからデータを取得します。データ補完メソッドでは、実際のレンダリングを行う上記- (void)connectionDidFinishLoading:(NSURLConnection *)connection
のメソッドを呼び出します。completionHandler
問題。これはデータを正常に取得しますが、レンダリング メソッドが呼び出されると何も描画されません。コンソールに次のメッセージが表示されます。
2013-01-08 21:02:34.417 IGV[49732:f803] -[URLDataLoader connection:didReceiveResponse:] [Line 248] data 0
2013-01-08 21:02:34.417 IGV[49732:f803] -[URLDataLoader connection:didReceiveData:] [Line 260] data 998
2013-01-08 21:02:34.419 IGV[49732:f803] -[URLDataLoader connection:didReceiveData:] [Line 260] data 2446
2013-01-08 21:02:34.423 IGV[49732:f803] -[URLDataLoader connection:didReceiveData:] [Line 260] data 3845
2013-01-08 21:02:34.424 IGV[49732:f803] -[URLDataLoader connectionDidFinishLoading:] [Line 275] data 3845
Jan 8 21:02:34 new-host-5.home IGV[49732] <Error>: CGContextSetFillColorWithColor: invalid context 0x0
Jan 8 21:02:34 new-host-5.home IGV[49732] <Error>: CGContextGetCompositeOperation: invalid context 0x0
Jan 8 21:02:34 new-host-5.home IGV[49732] <Error>: CGContextSetCompositeOperation: invalid context 0x0
Jan 8 21:02:34 new-host-5.home IGV[49732] <Error>: CGContextFillRects: invalid context 0x0
誰かがここで何が起こっているのかを理解するのを手伝ってくれますか.
ありがとう、
ダグ