나는이NSNotifcationCenter를 통해 전달 된 값이 보존되지 않는 이유는 무엇입니까? ,
-(void)setPosition:(CGPoint)point
{
NSString *pointString = NSStringFromCGPoint(point);
NSDictionary *dict = [[NSDictionary alloc]
initWithObjectsAndKeys:@"p", pointString, nil];
[[NSNotificationCenter defaultCenter]
postNotificationName:@"BownceSpriteDidSetPosition"
object:self
userInfo:dict];
[super setPosition:CGPointMake(point.x, point.y)];
}
같은 NSNotification을 통해 CGPoint를 보내려고 그리고 난이
-(void) init
{
if((self = [self init])){
[[NSNotificationCenter defaultCenter]
addObserver:self selector:@selector(setViewPointCenter:)
name:@"BownceSpriteDidSetPosition"
object:nil];
// I wondered wether 'object' should be something else???
// more code etc....
}
return self
}
-(void) setViewPointCenter:(NSNotification *)notification
{
NSString * val = [[notification userInfo] objectForKey:@"p"];
CGPoint point = CGPointFromString(val);
// trying to debug
NSString debugString = [NSString stringWithFormat:@"YPOS -----> %f", point.y];
NSLog(debugString);
CGPoint centerPoint = ccp(240, 160);
viewPoint = ccpSub(centerPoint, point);
self.position = viewPoint;
}
같은 관찰자를 구현했습니다하지만 0 (CGPoint가 비어 있거나 것 같다 0) 어쩌면. 어느 쪽이든 원하는 효과를 내지 못하고 debugString이 point.y를 0.0으로 표시합니다.
내가 발견 한 모든 예에서 볼 때 나는 괜찮은 것처럼 보입니다. 그러나 분명히 나는 그렇지 않습니다. 누구든지 올바른 방향으로 나를 찔러 내 실수를 지적 할 수 있습니까?
알림을 말하고 있음을 나타 내기 위해 제목을 편집 할 수 있습니다. "NSNotifcationCenter를 통과 한 가치가 보존되지 않았습니다"라고 제안해도됩니까? –
"포인트"가 무엇인지 확인하지 않고 지금까지 게시 한 코드에 문제가 있는지 여부를 말하기는 어렵습니다. setPosition의 맨 위에 로그 아웃 한 것처럼 보이는 것은 무엇입니까? –
나는 그것을 시도했고, 요점은 완벽하게 설정되고있다. 실제로 Cocos2d 스프라이트를 서브 클래 싱하고 setPosition 메서드를 재정의합니다. – gargantuan