私はiPhoneのプログラミングに全面的な騒ぎをしています。私は例外を投げて投げられてしまいました。NSMutableDictionaryはdoesNotRecognizeSelectorをobjectForKeyにスローしますか?
背景:カスタムサブビューでエラーが発生しており、プログラムのロード直後にエラーが発生します。オーバーライドされたdrawRectメソッドで例外がスローされています。エラーを投げるコードは次のとおりです。
- (void)drawRect:(CGRect)rect{
NSNumber *points = [NSNumber numberWithInt: star.numberOfPoints];
//HERE. Doesn't recognize selector?!
CGPathRef t = (CGPathRef)[starPaths objectForKey:points];
/*snip*/
starPathsは、容量のNSMutableDictionaryとしてawakeFromNibで初期化された1
投げだ例外はある - [NSObjectのdoesNotRecognizeSelector:]
starPathsがで宣言されていますヘッダ
NSMutableDictionary *starPaths;
としてビューのファイルと
として初期化されます- (void)awakeFromNib{
starPaths = [NSMutableDictionary dictionaryWithCapacity: 1];
}
最後に、エントリを追加するコードがディクショナリから無関係の応答を受け取ることに依存しているため、コード内で要素を正常に辞書に追加することができませんでしたその特定のエントリを構築する必要があります。
提案がありますか?私が提供すべき他の情報は? 何か助けていただければ幸いです。私は何か明白なものを見逃しているように感じますが、私は一日中、この運に反対して頭を叩いています。
starPathsが初期化されているawakeFromNibの関連部分を投稿できますか? – marcc
また、starPathsのインスタンス変数宣言。 -setObject:forKey:などでキーと値のペアを辞書に追加する場所はありますか? –