如何简单粗暴学习开发ios(2)
#如何简单粗暴学习开发ios#
8)有时候大家觉得写程序是个有点神秘的事情,实际上,程序员就是人和计算机之间的翻译而已。跟英国人讲话要用英语,跟德国人讲话用德语,跟计算机讲话就要用计算机能听懂的语言,比如java,c++,或者我现在学习的Objective-C,Swift等等。编程语言是有明确语法规则的,非常清晰和死板,基本不用担心像自然语言里面多音字,多义词,情绪助词,上下文等等模糊不清的复杂状况。所以,运行“Hello World”有个直观体验以后,接下来要了解一下开发语言的基本规则。
9)Objective-C
书上说Objective-C支持动态绑定,发送消息时,无需考虑接收者的类,也无需考虑方法的名字,给开发人员极大的设计自由。不过在我印象中,设计上自由,可能伴随着调试上的困难,因为有些bug不能在编译时发现。
10)一些基本元素
注释:“//”,“/*...*/”导入头文件:#import编译器指令:以“@”符号开始,比如:字符串@"this is text",类声明@class Point,定义接口@interface,接口实现@implementation等等,虽然感觉有点多余,但是编译器喜欢就好。
11)数据类型
【修正:Objective-C的简单数据类型来自C语言】,常见的int,float,char等等,long, long long, short等被作为限定词,总的来说,int至少32位精度,short int至少16位,long int至少32位,long long int至少64位,等等。特殊标识符,比如BOOL,YES(1),NO(0),空对象nil,Nil等等。id类型,类似于java中的Object,一个万金油对象,其内部定义是一个指向对象的指针。
【修正:Objective-C的自身的数据类型继承自NSObject,比如NSNumber,NSDecimalNumber,NSString等等。】
12)基本运算
加减乘除=-*/,取余数%,取大小sizeof,计算数组元素的个数用 sizeof(data)/sizeof(data[0]),关系运算 >,<,==,!= 等等,位运算 &,|,~ 等等
13)Swift
Swift大约是比Objective-C更时髦的语言,主要特征是Playground(一边写代码一边看到结构),REPL(Read Eval Print Loop,解释型语言)
14)基本数据类型
基本的int,float,double,char好像跟Objective-C一样
15)常量和变量
用“let”定义常量,比如 let height = 170用“var”定义变量,比如 var a = "swift"(好像Javascript掺和进来了)Swift不用严格定义变量类型。虽然编译器可以自动确定变量类型,节省了输入那几个字符的时间,但是程序员其实是需要明确知道每个变量类型的,明确写出来会更清楚,也避免误用变量。
16)数组和字典
数组定义 let emptyArray = String[]{}字典定义 let emptyDictionary = Dictionary(),像java的Hashmap。
17)字符串
格式是"Hello world",用"+"连接两个字符串,类型是String,支持Unicode,与NSString无缝桥接。
Swift函数对于String是传值,而NSString是传引用。
计算字符数用countElements()函数,不过好像度娘说新版改为为count()了。
字符串中间插入数值,用“\()”在字符串中间嵌入变量或表达式。
判断两个字符串相等用“==”。
判断字符串是否包含的前缀/后缀用hasPrefix/hasSuffix,类似java的startWith/endWith。
18)流程控制
循环
for a in b { ... }
for (a, b) in dictionary { ... }
for initialization; condition; increment { ... }
while condition { ... }
do { ... } while condition
条件
if condition { ... }
else if condition { ... }
else { ... }
switch someValue {
case value1 :
...
case value2, value3 :
...
default :
...
}
不用写break。
19)函数
func functionName () { ... }
func functionName ( paraName : paraType, ...more para ) -> returnType { ... }
func functionName ( paraName : paraType, ...more para ) -> ( returnName : returnType, ...more return ) { ... }
20)Hello Swift !
既然Swift比较时髦,那也Hello一下看看吧。
同样在 Xcode -》新建Project -》开发语言选择Swift -》创建,,,,出现一个“no provisioning profiles found”错误,点击“fix”,,,,选一个自己team,变成没有device错误,先不管,直接点击运行按钮,iPhone虚拟机启动,出现也是一个白花花的界面。
回到Xcode,界面设计文件依然是Main.storyboard,添加一个Label、和一个ImageView拖放到设计界面上。
选中Label修改其文为“Hello Swift !”。
想要为ImageView设置图片,Xcode右上方找到图标Attributes inspector,里面image属性,但是是下拉框,内容从哪里来?看看项目文件中有个Assets,右键点击后"Add files ...",选择一个图片文件添加进去,然后再看image下拉框,可以选择该图片了。
再次运行,模拟器上显示出"Hello Swift !"和一张图片。