开发者社区> 问答> 正文

ios中传递CGpoint 结果错误

需要发送CGpoint 到主类中。使用了Notification,但是不知在接受端如何从Notification中提取出CGpoint。在log输出的结果是0.0

代码
发送:
``
NSValue *pointAsObject =[NSValue valueWithCGPoint:CGPointMake(touchDetectingView.lastTouchPosition.x, touchDetectingView.lastTouchPosition.y)];
[[NSNotificationCenter defaultCenter] postNotificationName: @"swap" object:pointAsObject];


接收端 Header 文件:
  • (void)incomingNotification:(NSNotification *)notification;

接受端 M 文件:

[super viewDidLoad];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(incomingNotification:) name:@"swap" object:nil];

  • (void)incomingNotification:(NSNotification *)notification
    {

     NSValue *pointAsObject = [[notification userInfo] valueForKey:@"swap"];
    NSLog (@"Successfully received the test notification %f",pointAsObject.CGPointValue.y);

    }

展开
收起
爵霸 2016-03-24 09:26:34 1882 0
1 条回答
写回答
取消 提交回答
  • 请看黑体字,你应该放到userinfo里传递,post的时候,而不是通过object传递

    NSValue *pointAsObject =[NSValue valueWithCGPoint:CGPointMake(touchDetectingView.lastTouchPosition.x, touchDetectingView.lastTouchPosition.y)];
    NSDictionary *dict = [NSDictionary dictionaryWithObject:pointAsObject
                                                          forKey:@"point"];
    [[NSNotificationCenter defaultCenter] postNotificationName: @"swap" object:self userinfo:dict];* ** 

    接收并处理消息

    - (void)incomingNotification:(NSNotification *)notification
    {
              NSValue *pointAsObject = [[notification userInfo] valueForKey:@"point"];
            NSLog (@"Successfully received the test notification %f",pointAsObject.CGPointValue.y);
    }
    2019-07-17 19:11:54
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
移动 App 性能监测实践(iOS篇) 立即下载
From Java_Android to Swift iOS 立即下载
From Java/Android to Swift iOS 立即下载