新浪微博授权(为什么授权的代码写在viewDidLoad方法中不行,写在自定义方法中就行呢)

chenyu 发布于 2013年11月01日
无人欣赏。

最近在做新浪微博的一个工具(iOS),为了快速上手,就把新浪微博授权的代码写在了viewDidLoad方法中,结果害得我花了2天时间,怎么设置都不行,最后把授权的代码写在在自定义的方法中,程序运行起来后,点击一个button来触发这个方法,这样就可以进行授权了。有哪位知道这是为什么?

共6条回复
tinyfool 回复于 2013年11月01日

你在viewDidLoad里面设置一个断点,一步一步走,然后你多半会发现,某个变量是nil。

好好看看文档关于View加载顺序的部分,同时可以在各个函数里面放上NSLog,研究一下

nickel 回复于 2013年11月01日

看样子肯定是因为放在viewDidLoad的位置先于某个变量还没有初始化完毕。放在自定义方法中是因为view里涉及的所有资源都初始化完了。

老实说,这种bug也要花两天的话,你解决问题的方法还是很有问题。就算像tiny说的逐行断点/NSLog也不至于要两天。况且还那么明显以听就知道是所依赖的变量/资源未初始化的原因。

天底下最笨也是最万能的调试方法就是逐行打印日志,除非是多线程竞争条件造成的,否则肯定能直接找到问题所在。

chenyu 回复于 2013年11月01日

1楼 @tinyfool 多谢…………

zhangmeteor 回复于 2013年11月01日

了解清楚整个逻辑,思考清楚,再去查问题,你会发现快很多

chenyu 回复于 2013年11月01日

2楼 @nickel 多谢多谢,我还得改进学习方法。

cnsoft 回复于 2013年11月01日

曾经我给某个同事演示 debug 断点 以及查看memory 变量时, 他很惊讶的说, 还有这个功能啊...

登录 或者 注册