首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSInvalidArgumentException,理由:'-[NSNull isEqualToString:]

NSInvalidArgumentException,理由:'-[NSNull isEqualToString:]
EN

Stack Overflow用户
提问于 2017-08-06 08:07:13
回答 1查看 631关注 0票数 1

我收到了推送通知,并试图按下面的方式解析字典,但我得到了以下异常。

*由于“NSInvalidArgumentException”异常终止应用程序,原因:'-NSNull isEqualToString::未识别的选择器发送到实例0x1a6574ef8‘

这是我收到的字典

Implementation

代码语言:javascript
复制
-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
    if (application.applicationState == UIApplicationStateActive)
    {
       // exception happens the following line
        if([[userInfo objectForKey:@"aps"] objectForKey:@"alert"] != NULL && 
           [[[userInfo objectForKey:@"aps"] objectForKey:@"alert"]isEqualToString:@"New Order!"])
        {
            [[NSNotificationCenter defaultCenter] postNotificationName: @"newOrderNotificationMessage" object: [userInfo objectForKey:@"aps"]];
        }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-06 08:12:03

您还需要检查NSNull类,尝试使用以下方法

代码语言:javascript
复制
-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
    if (application.applicationState == UIApplicationStateActive)
    {
        // exception happens the following line
        if([[userInfo objectForKey:@"aps"] objectForKey:@"alert"] != NULL && [[[userInfo objectForKey:@"aps"] objectForKey:@"alert"] class] != [NSNull class]){
            if ([[[userInfo objectForKey:@"aps"] objectForKey:@"alert"]isEqualToString:@"New Order!"])
            {
                [[NSNotificationCenter defaultCenter] postNotificationName: @"newOrderNotificationMessage" object: [userInfo objectForKey:@"aps"]];
            }
        }

    }
}

希望这能有所帮助

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45529936

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档