これは私を困惑させました。NSArray、最後のオブジェクトは常に無効
NSArrayとinitWithObjectsをビルドします。最後の要素は決して本当に割り当てません。実際、コード内の次のallocは、最後の要素から指し示されたものと同じメモリアドレスをとります。
コードは次のとおりです。
coordArr = [[NSArray alloc]initWithObjects:
[NSValue valueWithCGPoint:CGPointMake(200.0,40.0)],
[NSValue valueWithCGPoint:CGPointMake(56.0,290.0)],
[NSValue valueWithCGPoint:CGPointMake(99.0,35.0)],
[NSValue valueWithCGPoint:CGPointMake(222.0,333.0)],
[NSValue valueWithCGPoint:CGPointMake(60.0,60.0)],
[NSValue valueWithCGPoint:CGPointMake(105.0,299.0)],
nil];
デバッガを示しています。あなたが任意のアイデアを持っている場合は、それが役立つだろう
alt text http://sergepress.com/temp/NSArray.png
。 ありがとう!
このエラーを再現しようとしましたができませんでした。周囲のコードをもっと投稿できますか? – pgb
ここに問題があるとは言えません... 私は[[[NSArray ....]] retain]を追加しました。無駄に。 の#import @interfaceウェイポイント:UIViewの{ \tにNSArray * coordArr。 } @property(nonatomic、retain)NSArray * coordArr; @end @implementationウェイポイント @synthesize coordArr; - (ID)initWithFrame:(CGRect)フレーム{ 場合(自己= [スーパーinitWithFrame:フレーム]){ \t \t self.backgroundColor = [UIColor clearColor]。 //透明な背景 \t \t coordArr = ...; } return self; } –
SYF970
- (void)viewDidLoad { \tウェイポイント* wpts = [[Waypoints alloc] initWithFrame:CGRectMake(0,0,320,480)]; \t self.waypoints = wpts; \t [self.view addSubview:waypoints]; \t [wpts release]; } – SYF970