2016-12-07 2 views
0

私はココアでベジェ曲線を描こうとしていますが、意味を持たないEXC_BAD_INSTRUCTIONが表示されています。 addCurveToPoint EXC_BAD_INSTRUCTIONでクラッシュする

NSBezierPath *path = [NSBezierPath bezierPath]; 
[path setLineWidth: 1.0f]; 

NSPoint a = NSMakePoint(0, 0); 
NSPoint c1 = NSMakePoint(0, 50); 
NSPoint c2 = NSMakePoint(50, 100); 
NSPoint b = NSMakePoint(100, 100); 

[path moveToPoint:a]; 
[path addCurveToPoint: b controlPoint1:c1 controlPoint2:c2]; 

[[NSColor colorWithDeviceRed:1 green:0 blue:0 alpha:1] set]; 

[path stroke]; 

私のアプリケーションがクラッシュし

次の行が実行されます:ここで

は私のコードです

[path addCurveToPoint: b controlPoin1:c1 controlPoint2:c2]; 

とXcodeは、それが私のメインループでクラッシュした私に語った:

[NSApp runModalSession:modalSession]; 

エラー出力は次のとおりです。

実は、私はちょうどあなたがのAppKit(NSBezierPath)ではないのUIKit(UIBezierPath)をターゲットにしているが実現しました
2016-12-08 04:38:35.344601 unit_tests[10606:777278] -[NSBezierPath addCurveToPoint:controlPoint1:controlPoint2:]: unrecognized selector sent to instance 0x100428fa0 

(lldb)

+1

を使用してください

私は強く、コールスタックは、 "完全に役に立たない" である疑い:それを投稿し、潜在的なヘルパーは代わりに決めてみましょうか? –

+0

は、スタックトレースではない出力 – megamau

+0

を含めるように編集しましたが、これは1行です。トレースの残りはどこですか? –

答えて

0

あなたはcontrolPoin1: c1とタイプミスを持っていることがcontrolPoint1: c1

でなければなりません。

編集:AppKitの使用のための

-[NSBezierPath curveToPoint: controlPoint1: controlPoint2:] UIKitには-[UIBezierPath addCurveToPoint: controlPoint1: controlPoint2:]

+0

はい、そうです、私はNSBezierPathを使用しています。入力ミスを修正しましたが、同じ結果になりました。 – megamau

+0

メソッドは - [UIBezierPath addCurveToPoint:controlPoint1:controlPoint2:]および - [NSBezierPath curveToPoint:controlPoint1:controlPoint2:] – DDP

+0

@DDP解答に追加する必要があります。 –

関連する問題