4

私はここや他の場所で数え切れないほどの質問に目を通しましたが、私の人生では何が間違っているのか理解できません。

iPhone のように、ポイントという名前の NSMutableArray 内に NSValues として CGPoints の配列を格納しようとしています。

NSValue *point = [NSValue valueWithCGPoint:firstTouch];
NSLog(@"NSValue *point = %@", point);
[points addObject:point];

NSLOG OUTPUT
NSValue *point = NSPoint: {120, 221}

CGPoint から NSValue への変換はすべて順調に進んでいます。しかし、ポイントを取得しようとすると、何も得られません。

NSValue *getPoint = [points objectAtIndex:0];
CGPoint thePoint = [getPoint CGPointValue];
NSLog(@"Point = %@", NSStringFromCGPoint(thePoint));

NSLOG OUTPUT
Point = {0, 0}

ポイントは同じはずですが、null の結果が得られます。

テスト目的で、これは touchesBegan メソッドで行われています。

私がどこで間違っているのか誰にも分かりますか?前もって感謝します。

4

3 に答える 3

2

配列をメモリに割り当てて初期化したことはありません。存在する配列がなかったため、ポイントが配列に格納されていませんでした。

于 2010-03-21T07:15:55.653 に答える
1

に追加CGPointするNSMutableArray

[ArrObj addObject:NSStringFromCGPoint(PointObj)];

CGPointから取得するためNSMutableArray

CGPoint pointObj2 = CGPointFromString([ArrObj objectAtIndex:index]);

これはあなたを助けるかもしれません..

于 2014-01-28T06:36:47.217 に答える
-1

最初に可変配列をメモリに割り当てます。

points = [[NSMutableArray alloc] init];

次に挿入します。

于 2011-02-02T07:23:17.413 に答える