美文网首页
NSCache invalid args hookSetObje

NSCache invalid args hookSetObje

作者: 天空中的球 | 来源:发表于2020-06-13 23:12 被阅读0次

    在项目中突然报了一个这样的错:

    断点报的错 线程的堆栈信息

    key 是空的,一般看堆栈信息一下就可以找到搞定的。
    但是这个 Object UIImage 是在哪啊,新增的代码处完全没有设置啊,猜测是 Runtime 处某处增加的,接下来就是寻找啦。

    -[NSCache(Safe) hookSetObject:forKey:]
    |1343|NSCache invalid args hookSetObject:
    [<UIImage:0x283868c60 symbol(system: xmark) {16.5, 14.5} baseline=2,
    contentInsets={1, 2, 1, 2},
    alignmentRectInsets={-2, 0, -1.5, 0} config=<scale=M, 
    pointSize=15, weight=Bold, 
    traits=(UserInterfaceIdiom = Phone, DisplayScale = 2, 
    DisplayGamut = P3, HorizontalSizeClass = Compact, VerticalSizeClass = Regular, UserInterfaceStyle = Light, UserInterfaceLayoutDirection = LTR, PreferredContentSizeCategory = L, AccessibilityContrast = Normal)
    >>] forKey:[(null)]
    

    找了很久,没有找到的

    NSCache 不是字典,可以为空,但会有异常
    - (void)hookSetObject:(id)obj forKey:(id)key // 0 cost
    {
        if (obj && key) {
            [self hookSetObject:obj forKey:key];
        }else {
            if (!obj) {
                SFAssert(NO, @"NSCache invalid args hookSetObject:[%@]", obj);
            }
    //        SFAssert(NO, @"NSCache invalid args hookSetObject:[%@] forKey:[%@]", obj, key);
        }
    }
    

    以上先对 NSObjectSafe 这个库改下的。

    如有发现问题,后续持续更新。

    笔记来源辅助

    相关文章

      网友评论

          本文标题:NSCache invalid args hookSetObje

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