Не удается вывести значения CGPoint из mutableArray NSValue

Я создал NSMUtableArray из CGpoints и сохранил их, разделив на подклассы как NSValue, но не могу получить значения. вот что я сделал.

 CGPoint graphPoint;
    NSMutableArray *pointValues = [[NSMutableArray alloc] init];

    for( int x =0;x<5; x++)
    {
    NSDictionary* xValue = [NSDictionary dictionaryWithObject:[NSNumber numberWithInt:x] forKey:@"X"];
    graphPoint.x =x;
    graphPoint.y = [CalculatorBrain runProgram: self.graphingPoint usingVariableValues:xValue];

    [pointValues addObject:[NSValue valueWithCGPoint:graphPoint]];

}

Я пытался использовать это, чтобы получить значения, но я просто возвращаю ноль

for( int x=0; x<5; x++) {
NSValue *val = [pointValues objectAtIndex:x];
CGPoint point = [val CGpointValue];
NSLog(@"Points = %@", point);
}

person Terrel Gibson    schedule 22.07.2012    source источник
comment
Это чудо, что код не дает сбоев.   -  person Richard J. Ross III    schedule 23.07.2012


Ответы (1)


Вы не можете напечатать CGPoint, используя спецификатор формата %@, так как это не объект. Вместо этого используйте NSStringFromCGPoint():

NSLog(@"%@", NSStringFromCGPoint(myPoint));
person Richard J. Ross III    schedule 22.07.2012
comment
кажется, работает, но я получаю предупреждение о неявном объявлении для NSStringFromPoint, это нормально? - person Terrel Gibson; 23.07.2012
comment
@TerrelGibson, вы включили UIKit / AppKit? Ваш код, вероятно, все еще будет работать нормально, но это предупреждение никогда не бывает хорошим. - person Richard J. Ross III; 23.07.2012
comment
я просто делаю #include UIKit / AppKit, потому что я получаю сообщение об ошибке, говорящее, что имя файла не найдено - person Terrel Gibson; 23.07.2012
comment
@TerrelGibson нет, вы включаете UIKit/UIKit.h (для iOS) или AppKit/AppKit.h (для Mac). - person Richard J. Ross III; 23.07.2012
comment
@JoshCaswell хорошая мысль, спасибо, что указали на это, исправлено. - person Richard J. Ross III; 23.07.2012