我又一次有一个非常奇怪的问题。无论我是在模拟器上还是在iPhone上运行应用程序,我都会获得不同的输出。
请参阅以下控制台日志:
iPhone第一次运行,点击第一个职业单元
2011-06-23 14:47:28.974 Acando[2033:307] 1 - loadView method running
2011-06-23 14:47:29.156 Acando[2033:307] 2 - viewDidLoad method running
2011-06-23 14:47:29.159 Acando[2033:307] 3 - viewWillAppear method running
[Switching to process 12803 thread 0x0]
[Switching to process 11523 thread 0x0]
2011-06-23 14:47:29.689 Acando[2033:307] 4 - viewDidAppear method running
2011-06-23 14:47:29.692 Acando[2033:307] View: UILabel, height: 21.000000
2011-06-23 14:47:29.695 Acando[2033:307] View: UIWebView, height: 400.000000
2011-06-23 14:47:29.851 Acando[2033:307] webViewDidFinishLoad method running
2011-06-23 14:47:29.855 Acando[2033:307] UIWebView dynamic height: 1150.000000
[Switching to process 12547 thread 0x0]
模拟器首次运行,点击第一个职业单元
2011-06-23 14:46:26.405 Acando[92098:207] 1 - loadView method running
2011-06-23 14:46:26.421 Acando[92098:207] 2 - viewDidLoad method running
2011-06-23 14:46:26.422 Acando[92098:207] 3 - viewWillAppear method running
[Switching to process 92098 thread 0x2003]
[Switching to process 92098 thread 0x207]
2011-06-23 14:46:26.484 Acando[92098:207] webViewDidFinishLoad method running
2011-06-23 14:46:26.485 Acando[92098:207] UIWebView dynamic height: 1150.000000
[Switching to process 92098 thread 0x6703]
2011-06-23 14:46:26.781 Acando[92098:207] 4 - viewDidAppear method running
2011-06-23 14:46:26.782 Acando[92098:207] View: UILabel, height: 21.000000
2011-06-23 14:46:26.783 Acando[92098:207] View: UIWebView, height: 1150.000000
似乎在iPhone上,方法webViewDidFinishLoad
在<{strong> viewDidAppear
方法之后加载。
但是在模拟器上webViewDidFinishLoad
在<{strong> viewDidAppear
方法之前加载。
是什么给出了?
编辑:更奇怪的是,只有当我点击第一个加载了具有我的UIScrollView和UIWebView的viewcontroller的单元格时,才会发生这种情况。我点击webViewDidFinishLoad
方法的所有后续单元格都在viewDidAppear
方法之前加载。
我有办法纠正这个问题吗?
答案 0 :(得分:2)
您应该考虑数据模拟器上的互联网连接远远优于iPhone设备上的连接。使用同步和多线程时要小心。
答案 1 :(得分:1)
您的线程在手机上以不同的顺序执行,而不是模拟器。这不是一个多线程编程功能的错误。您是在程序中遇到崩溃还是对执行顺序感到好奇?
答案 2 :(得分:0)
模拟器在模拟环境中运行x86编译代码。肯定会有一些差异。
这就是为什么你应该总是在实际设备上进行测试,而不是完全依赖模拟器来测试你的测试结果。