将CGPoint有效存储在核心数据中

时间:2011-11-16 08:46:03

标签: objective-c core-data

我正在尝试找到一种将CGPoint存储在Core Data数据库中的方法。

在谷歌搜索后,我发现某处可以通过x和y属性获得实体(在我的情况下为Point2D)。两个浮点数都映射到NSNumber。

问题是,为了得到回报,我有以下Point2D NSManagedObject子类的方法:

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

它有效,但由于我有很多观点,它似乎在占用CPU。

我想知道是否有更有效的方法来做到这一点。

1 个答案:

答案 0 :(得分:8)

我认为在这种情况下无法节省一些CPU时间,代码如下的事件,它会做同样的事情,也许更少或许更多:

// >>> 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);