在实际开发中,我有时侯遇到的第一个小问题:
假如说: 有一个二维数组,food[x][y];
当我们想要取到 二维数组的某一行的y值(即列数的时候),在oc中可能会本能的使用点语法来实现:
self.foods[0].count
这是后,编译器便会报错。
小生一开始十分不能理解,我觉得这样写没有什么太大的问题啊,于是我在经过了一段时间的“解决问题”模式之后,发现了这个错误的原因。 我们把点语法分解看:
[self.foodsobjectAtIndex:0] ==self.foods[0];
这两句话是等价的。而 objectAtIndex 返回值是id,由于id是动态类型,就是说只有在运行时候才知道具体类型,所以当然不具备 .count 方法
这里我们要使用传统的函数调用方式:
[self.foods[0]count],就能通过编译了。
问题完美解决。
第二小小问题就是,在ios7之中,标题尽量不要使用toobar工具。因为当你在故事板里面设置好标题的时候,在模拟器运行的时候会出现细小的偏差。我一开始以为这是我设计ui时候的问题,后来才发现这个是iOS7 的问题。因为在iOS 6中并不会出现这样的问题。具体为什么会出现这样的问题,得问苹果了
解决方法:标题(导航位置)使用uiview或者导航栏吧。toolbar能不用尽量不用。
在这里,我们可以看到,无论我们怎样居中拖拽(有兴趣的可以试一试),中文标题都会有细微的偏差。
ps: 写给初学计算机编程的人:
我不是高手,也是一个菜鸟。有一次,我曾经请教过一个高手,如何学好编程。他当时跟我说了一番话让我铭记于心:这个世界上本就没有什么所谓的高手,天才。把每一件简单的事情做到极致,你自然就是高手。
我认为在学习编程的路上没有什么太好的捷径,不要相信所谓的“30天精通xx”这种东西。如果真的是要能精通,那你所掌握的就不能称之为技术,叫做技能。优秀的智商固然让你在这条路上走的轻松,但是切记,实际开发中你所遇到的问题远远不是那么简单,很多东西,不去实实在在敲上几万行代码是不可能真正意义上的精通的。开玩笑的说:你就是看着源代码写程序,都会出很多你想像不到的错误。
这个就好比是打dota:你可以几个月的时间会上手玩影魔这个英雄。但是你要是想要达到09的地步,岂止几年。当你达到了,熟练了,能独当一面了,而你看了pis的影魔,你会感慨其实你根本不会玩影魔。