2

iPhone アプリに非常に単純な線画アニメーションを実装しようとしています。遅れてビューに四角形を描画したいと思います。私はperformSelector自分の描画方法を実行するために使用しています。

-(void) drawRowAndColumn: (id) rowAndColumn
{
    int rc = [rowAndColumn intValue];
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextSetLineWidth(context, 2.0);
    CGContextSetStrokeColorWithColor(context, currentColor.CGColor);
    CGRect rect = CGRectMake(rc * 100, 100, 100, 100);
    CGContextAddRect(context, rect);
    CGContextDrawPath(context, kCGPathFillStroke);

}

次に、次の方法で呼び出されます。

int col = 10;
[self performSelector:@selector(drawRowAndColumn:) 
           withObject:[NSNumber numberWithInt:col]
           afterDelay:0.2];

しかし、メッセージが実際に送信されると、次のようなエラーが発生するdrawRowAndColumn:ため、有効な にアクセスできなくなったようです。CGContextRef

<Error>: CGContextAddRect: invalid context

performSelectorを への直接呼び出しに置き換えると、正常にdrawRowAndColumn動作します。したがって、私の最初のアイデアは、CGContextRef経由でも渡すperformSelectorことでしたが、複数の引数を同時に渡す方法がわかりません (これは別の良い質問です)。

上記のコードの何が問題になっていますか?

4

1 に答える 1