美文网首页
iOS 优先使用class 相比于 struct

iOS 优先使用class 相比于 struct

作者: RudyHao | 来源:发表于2020-12-02 19:54 被阅读0次

    一个2天的填坑记录

    原来某个模型是用结构体来定义大概如下:

    struct SEPShareStruct {
        NSString *url;
        id image; //url | UIImage
        id thumbimage; //url | UIImage
        NSString *title;
        NSString *content;
        NSString *miniProgramPath;
        NSString *miniProgramUsername;
        NSString *miniProgramScene;
    };
    typedef struct CG_BOXABLE SEPShareStruct SEPShareStruct;
    

    成员变量:

    @property (nonatomic, assign) SEPShareStruct shareContent;
    

    某处调用crash如下,说有指针被释放(揪出来是shareContent):
    Thread 1: EXC_BAD_ACCESS (code=1, address=0xacd86f350)

    ![crash](https://img.haomeiwen.com/i12165524/92e2df798359e34e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240 ''crash'')
    

    推测原因

    原来在xcode10还是11开发的功能,升级到xcode12突然短路,推测是编译器优化(有待考证)了assign struct导致被提前释放crash

    解决方案

    将SEPShareStruct 从struct 变成 NSObject 解决

    相关文章

      网友评论

          本文标题:iOS 优先使用class 相比于 struct

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