could not load any Objective-C class information from the dyld shared cache

今天在使用js调用oc函数中时,加了一个定时任务,在定时任务中使用一个全局的变量来接收js传过来的值,

///用户id
-(void)setUserID:(NSString*)uid
{
    myUid = uid;
}

结果在第二次执行的时候就报该错,程序闪退

could not load any Objective-C class information from the dyld shared cache. This will significantly reduce the quality of type information available

字面意思就是不能从动态共享缓存中读取oc的信息。没有找到比较好的解决方案,但是感觉应该是因为这个全局变量的问题,有可能是在第二次执行定时任务的时候这个全局变量已经被释放了,虽然我加上static关键词,但是还是没有效果,最后是用NSUserDefault存储起来该值解决了这个问题

///用户id
-(void)setUserID:(NSString*)uid
{
    [[NSUserDefaults standardUserDefaults] setObject:uid forKey:@"taskuid"];
}

这个只是暂缓之计,总感觉不是最好的解决方案,但是并没有搜到理想的答案,只是不清楚为什么myUid是一个NSString的值,而该值在第二次会释放掉了,暂时这么解决,如果谁有更好的方案麻烦可以说下,不胜感激

Last modification:January 1st, 1970 at 08:00 am
如果看了这个文章可以让你少加会班,可以请我喝杯可乐
已打赏名单
微信公众号

Leave a Comment