学会分解问题和归类问题——关于方法和技巧
来源:互联网 发布:牛轧糖 知乎 编辑:程序博客网 时间:2024/06/05 09:25
最近发现,在开发过程中,我最大的障碍不在于技术储备的不足,而在于没法正确分析分解问题,没法将一个复杂,未知的问题分解成已知,简单的问题。甚至常常因为自信不足和心意浮躁,将原本并不复杂的问题复杂化。
比如今天需要解析一个plist文件,获取值,文件的结构如图
其实它并不复杂,是四层的字典嵌套加上一层的array
字典用 objectForKey:KeyValue方法来获取
而array 也是用 objectForKey:KeyValue方法来获取
写一个五层的嵌套即可
NSDictionary *firstDict = [[ NSDictionary alloc]initWithContentsOfFile:plistPath];
firstKeys = [ firstDict allKeys ];
for( NSString *key_1st in firstKeys)
{
NSDictionary *secondDict = [ firstDict objectForKey:key_1st];NSArray *secondKeys = [secondDict allKeys ];for( NSString *key_2st in secondKeys){NSDictionary *thirdDict = [ secondDict objectForKey:key_2st];NSArray *thirdKeys = [ thirdDict allKeys ]; for( NSString *key_3st in thirdKeys ) { NSDictionary *fourthDict = [ thirdDict objectForKey:key_3st];NSArray *fourthKeys = [ fourthDict allKeys ]; for( NSString *key_4st in fourthDict ) { NSArray *fifthArray = [ fourthDict objectForKey: key_4st]; } }}
}
但在一开始处理这个问题时,由于心急和慌乱,我没看清plist的结构,以为它是dictionary和array混合嵌套的一种结构,盲目地尝试了dictionary混合array的解析方法。最后才发现混乱和没有思路源自对文档结构的不理解。稍微仔细分析一下,就能看清它的结构,就能直接套用现成的解析方法,但我却自己给自己制造障碍,没分析清问题就开始解题,自然找不到正确的方向。
所以说,在解决问题时,首先要做的最重要的事,便是静下心来将问题分析清楚,将解决的思路想清楚,这一步做顺了,后面便能很顺利。我在以往的工作中经常不注意这点,导致长期以来的效率低下,这个缺点一定要及时更正,因为它在目前工作中最影响效率,最拖后腿,也最容易发生。
- 学会分解问题和归类问题——关于方法和技巧
- 字符串问题归类--C和C++
- 质数和分解问题
- 质数和分解问题
- _set()和_get()方法归类
- 个人学习第一阶段——关于html和css的技巧和问题总结(三)
- .Net中调用Js方法问题归类.
- oracle 学会怎么样分解复杂的问题
- oracle 学会怎么样分解复杂的问题
- oracle 学会怎么样分解复杂的问题
- 关于分解质因数问题
- 个人学习第一阶段——关于html和css的技巧及问题总结(一)
- 个人学习第一阶段——关于html和css的技巧及问题总结(二)
- 整数的素数和分解问题
- 整数的素数和分解问题
- 整数的素数和分解问题
- 整数的素数和分解问题
- 整数的素数和分解问题
- AOP--代理模式,拦截器的简易实现及原理
- 如何判断两个矩形是否有重叠部分?(某公司校园招聘笔试试题)
- Window下的Git和GitHub简单总结
- 我的OC练习(三)- 类的继承实践练习
- html中播放音频
- 学会分解问题和归类问题——关于方法和技巧
- 亲试,JS获取dropDownList值或文本
- 线程池的研究与实现
- 基于Smack3.0.4+ Openfire3.10.2下学习开发IM(五)聊天室操作:创建聊天室、成员添加聊天室、查询聊天室成员和监听聊天室
- hdu 2553 N皇后问题(回溯)
- Windows下Qt和Qwt的安装
- ACM start
- [24]递归
- 环境变量的配置