警告:关键内部的慢速默认访问需要 xx 秒,容差为 0.020000
Posted
技术标签:
【中文标题】警告:关键内部的慢速默认访问需要 xx 秒,容差为 0.020000【英文标题】:WARNING: Slow defaults access for key Internal took xx seconds, tolerance is 0.020000 【发布时间】:2013-12-31 14:46:57 【问题描述】:我在使用 phonegap ios 应用时遇到了一个奇怪的问题。我有一个没有广告的版本已获批准并且在应用商店中运行良好,还有一个新版本的广告由于应用程序挂在初始屏幕上而被拒绝。
应用程序的区别在于 3 个广告插件,iAD、admob 和 revmob。该应用程序大部分工作正常,但每隔一段时间它就会像 Apple 的反馈建议的那样挂在启动屏幕上,我找不到导致问题发生的原因。
我唯一的线索是错误控制台中出现“警告:对内部密钥的慢速默认访问耗时 0.039977 秒,容差为 0.020000”,但是当出现这种情况时,应用程序仍然运行良好。
此警告是否可能与闪屏问题有关?任何想法如何解决问题或寻找可能导致问题的原因?
谢谢
【问题讨论】:
确保在应用真正启动之前不要进行任何计算。如果时间过长,应用程序将被操作系统强制崩溃。如果您需要做一些需要几秒钟的事情(例如第一次复制一个大文件),请在 viewDidLoad 之后在您的第一个 VC 中执行(或在 performSelector:afterDelay:.1 调用的方法中的 viewDidLoad 中) 【参考方案1】:我认为这不是原因,您可能在模拟器上得到了这个,它不如设备高效。
延迟启动 90% 的原因是您在应用代理中执行的操作,更具体地说是在
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
避免在那里做冗长的任务,比如网络连接或处理大数据,如果你仍然需要在那里做一些事情并且不能将它移动到你的 viewDidLoad 方法中,请在另一个线程中这样做:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
// Override point for customization after application launch.
[self performSelectorInBackground:@selector(fetchUserInfoFromDB) withObject:nil];
return YES;
-(void)fetchUserInfoFromDB
//Do what you need to do in here
sleep(5);
NSLog(@"The app lanuched but I am still running in the background, Yay!!");
祝你好运
【讨论】:
Ops ,我刚刚注意到 PhoneGap 部分,我认为它会为您生成二进制文件,而您无法控制代码。无论如何,我希望我的回答能帮助其他在使用 xcode 和 Objective c 开发应用程序时遇到这个问题的人以上是关于警告:关键内部的慢速默认访问需要 xx 秒,容差为 0.020000的主要内容,如果未能解决你的问题,请参考以下文章