Эффективно хранить CGPoint в Core Data - PullRequest
1 голос
/ 16 ноября 2011

Я пытаюсь найти способ сохранить CGPoint в базе данных Core Data.

После поисков в поисках где-то я обнаружил, что один из способов сделать это - создать Entity (Point2D в моем случае) с атрибутами x и y. Обе поплавки, которые отображаются в NSNumber.

Проблема в том, что для возврата точки у меня есть следующий метод моего подкласса Point2D NSManagedObject:

- (CGPoint) cgPointValue {
    return CGPointMake([self.x floatValue], [self.y floatValue]);
}

И это работает, но, поскольку у меня много точек, кажется, что процессор загружается.

Интересно, есть ли более эффективный способ сделать это?

1 Ответ

8 голосов
/ 16 ноября 2011

Я думаю, что в этом случае нет способа сэкономить процессорное время, событие с кодом ниже, оно будет делать то же самое, возможно, меньше, а может и больше:

// >>> Saving result string int CoreData
CGPoint point = CGPointMake(20.0f, 20.f);
NSString *pointToSavae = NSStringFromCGPoint(point); // Will store string {20,20}

// >> Restoring point from string, retrieved from CoreData
CGPoint pointFromString = CGPointFromString(pointToSavae);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...