我正在尝试为 Cocoa 和 iOS 创建一个跨平台的 NSValue 类别,它将处理 CGPoint/NSPoint 和 CGSize/NSSize 等。
我有这个:
#ifdef __MAC_OS_X_VERSION_MAX_ALLOWED
// Mac OSX
+ (NSValue *) storePoint:(NSPoint)point {
return [NSValue valueWithPoint:point];
}
+ (NSPoint) getPoint {
return (NSPoint)[self pointValue];
}
#else
// iOS
+ (NSValue *) storePoint:(CGPoint)point {
return [NSValue valueWithCGPoint:point];
}
+ (CGPoint) getPoint {
return (CGPoint)[self CGPointValue];
}
#endif
Mac 部分运行良好,但 iOS 部分给我一个错误
return (CGPoint)[self CGPointValue];
有两条消息:1)没有已知的选择器 CGPointValue 的类方法和“使用类型 CGPoint(又名 struct CGPoint),其中需要算术或指针类型。
这是为什么?