今天在使用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的值,而该值在第二次会释放掉了,暂时这么解决,如果谁有更好的方案麻烦可以说下,不胜感激


☟☟可点击下方广告支持一下☟☟

最后修改:1970 年 01 月 01 日
请我喝杯可乐,请随意打赏: ☞已打赏列表