CocoaアプリケーションとCocoaTouchアプリケーションの間で共有したいクラスがあります。このクラスはさまざまなを計算CGPoint
し、それらを配列に格納します。ココアにはがあり[NSValue valueWithPoint]
ます。CocoaTouchにはがあり[NSValue valueWithCGPoint]
ます。
これらのフレームワーク固有のメソッドの使用をバイパスできるソリューションはありますか?
CocoaアプリケーションとCocoaTouchアプリケーションの間で共有したいクラスがあります。このクラスはさまざまなを計算CGPoint
し、それらを配列に格納します。ココアにはがあり[NSValue valueWithPoint]
ます。CocoaTouchにはがあり[NSValue valueWithCGPoint]
ます。
これらのフレームワーク固有のメソッドの使用をバイパスできるソリューションはありますか?
およびメソッドをCocoaNSValue
に追加するために、にカテゴリを作成できます。valueWithCGPoint:
CGPointValue
#もしも !TARGET_OS_IPHONE @interface NSValue(MyCGPointAddition) +(NSValue *)valueWithCGPoint:(CGPoint)point; -(CGPoint)CGPointValue; @終わり #endif
#もしも !TARGET_OS_IPHONE @implementation NSValue(MyCGPointAddition) +(NSValue *)valueWithCGPoint:(CGPoint)point { return [self valueWithPoint:NSPointFromCGPoint(point)]; } -(CGPoint)CGPointValue { NSPointToCGPoint([self pointValue]);を返します。 } @終わり #endif
または、とを使用することもできvalueWithBytes:objCType:
ますgetValue:
。
CGPointポイント={10、10}; NSValue * value = [NSValue valueWithBytes:&point objCType:@encode(CGPoint)]; //..。 [値getValue:&point];