美文网首页
iOS操作 字典 或者 数组 每次都崩溃到 Main函数

iOS操作 字典 或者 数组 每次都崩溃到 Main函数

作者: json_jie | 来源:发表于2018-05-13 20:21 被阅读65次

    iOS操作 字典 或者 数组 每次都崩溃到 Main函数,无法定位到位置的问题解决方案


    屏幕快照 2018-05-13 下午7.58.36.png 屏幕快照 2018-05-13 下午7.57.51.png

    当由于声明的类型,再不之情的情况下被赋值其他类型的数据,
    例如:声明的是一个字典类型的数据,由于后台数据结构更改变成一个字符串类型,接收的时候调用方法,引起崩溃,每次都崩溃在main函数,对象调用方法不存在的方法

    添加该方法的断言,就回崩溃在断言的地方,根据方法的输入参数,确定调用的方法的位置

    代码片段

    //
    //  ViewController.m
    //  Test
    //
    //  Created by jie on 2018/5/13.
    //  Copyright © 2018年 jie. All rights reserved.
    //
    
    #import "ViewController.h"
    @interface ViewController (){
        NSMutableDictionary *dic;
        NSMutableArray *mArr;
    }
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        //(1)
        dic = @"hello world";
        id  value = [dic objectForKey:@"key"];
        //(2)
        mArr = @"hello World";
        id arr = [mArr objectAtIndex:0];
    }
    @end
    
    
    //
    //  NSString+DFNSStringDebug.h
    //  Test
    //
    //  Created by jie on 2018/5/13.
    //  Copyright © 2018年 jie. All rights reserved.
    //
    
    #import <Foundation/Foundation.h>
    
    @interface NSString (DFNSStringDebug)
    -(void)objectForKey:(NSString*) str;
    -(void)objectAtIndex:(NSInteger)intergaer;
    @end
    
    
    //
    //  NSString+DFNSStringDebug.m
    //  Test
    //
    //  Created by jie on 2018/5/13.
    //  Copyright © 2018年 jie. All rights reserved.
    //
    
    #import "NSString+DFNSStringDebug.h"
    
    @implementation NSString (DFNSStringDebug)
    -(void) objectForKey:(NSString*) str  {
        assert(NO);   
    }
    -(void)objectAtIndex:(NSInteger)intergaer{
        assert(NO);    
    }
    @end
    

    相关文章

      网友评论

          本文标题:iOS操作 字典 或者 数组 每次都崩溃到 Main函数

          本文链接:https://www.haomeiwen.com/subject/mhtrdftx.html