ios中传递CGpoint 结果错误 -问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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 1678 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
    赞同 展开评论 打赏
问答排行榜
最热
最新
相关电子书
更多
From Java_Android to Swift iOS
立即下载
From Java/Android to Swift iOS
立即下载
React-Native 在iOS上的性能优化方案
立即下载