gar*_*uan 6 iphone cocoa cocos2d-iphone
我试图在一个类中调用一个名为setPosition的方法中的Notification,它在另一个类中触发setViewPointCenter.但是,我正在尝试发送一个CGPoint.但是Xcode并不喜欢它.
-(void)setPosition:(CGPoint)point
{
NSDictionary *dict = [[NSDictionary alloc] initWithObjectsAndKeys:@"sp", point, nil];
[[NSNotificationCenter defaultCenter]
postNotificationName:@"SpriteDidSetPosition"
object:self
userInfo:dict];
[super setPosition:point];
}
Run Code Online (Sandbox Code Playgroud)
在另一个类中触发此方法,但会抛出指示的错误
-(id) init{
// Usual stuff, blah blah blah...
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(setViewPointCenter:)
name:@"BownceSpriteDidSetPosition"
object:nil];
}
-(void) setViewPointCenter:(NSNotification *)notification
{
// ERROR: Invalid Initializer
CGPoint point = [[notification userInfo] valueForKey:@"sp"];
// more code here....
}
Run Code Online (Sandbox Code Playgroud)
我一直在挖掘,并找到了这个解决方案,但我仍然得到一个错误.
-(void)setPosition:(CGPoint)point
{
// ERROR: Incompatile type for argument 1 of "Value With Point"
NSValue *pointAsObject = [NSValue valueWithPoint:point];
NSDictionary *dict = [[NSDictionary alloc]
initWithObjectsAndKeys:@"sp",
pointAsObject,
nil];
[[NSNotificationCenter defaultCenter]
postNotificationName:@"SpriteDidSetPosition"
object:self
userInfo:dict];
[super setPosition:point];
}
Run Code Online (Sandbox Code Playgroud)
这让我疯了.而且让我更加困惑,将CGPoint改为NSPoint就像这样
-(void)setPosition:(NSPoint)point
{
NSValue *pointAsObject = [NSValue valueWithPoint:point];
NSDictionary *dict = [[NSDictionary alloc] init];
[dict initWithObjectsAndKeys:@"sp", pointAsObject, nil];
[[NSNotificationCenter defaultCenter]
postNotificationName:@"SpriteDidSetPosition"
object:self
userInfo:dict];
[super setPosition:CGPointMake(point.x, point.y)];
}
Run Code Online (Sandbox Code Playgroud)
摆脱setPosition中的错误,但我仍然搞砸了setViewPointCenter.据我所知,CGPoint和NSPoint应该是相同的,但它看起来并不像.
有没有人有一个如何在字典中传递CGPoint的工作示例?我无法弄清楚.
这适用于iPhone,因为它有所作为.
| 归档时间: |
|
| 查看次数: |
5501 次 |
| 最近记录: |