2012-07-11 19 views

回答

3

您可以在NSValue上創建一個類別,以便將valueWithCGPoint:CGPointValue方法添加到Cocoa。

#if ! TARGET_OS_IPHONE 
@interface NSValue (MyCGPointAddition) 
+ (NSValue *)valueWithCGPoint:(CGPoint)point; 
- (CGPoint)CGPointValue; 
@end 
#endif
#if ! TARGET_OS_IPHONE 
@implementation NSValue (MyCGPointAddition) 
+ (NSValue *)valueWithCGPoint:(CGPoint)point { 
    return [self valueWithPoint:NSPointFromCGPoint(point)]; 
} 
- (CGPoint)CGPointValue { 
    return NSPointToCGPoint([self pointValue]); 
} 
@end 
#endif

或者你可以使用valueWithBytes:objCType:getValue:

CGPoint point = {10, 10}; 
NSValue *value = [NSValue valueWithBytes:&point objCType:@encode(CGPoint)]; 
// ... 
[value getValue:&point];
+1

太棒了!我使用了最後一個建議。對於一個類別,我仍然必須明確地#導入一個我想避免的框架。謝謝。 – anna 2012-07-11 18:58:43

+0

不客氣。 – 2012-07-11 18:59:09