懒惰是富有最大的敌人,再不前进,我们就out了。最近工作比较轻松,不是很忙。于是想晚上下班回家学习点新东西。看着苹果大军的一天天壮大,心里也是痒痒的。于是就想先系统的学习下Objective-C,为之后学习ios编程开发提前打好基础,做好准备。
大家学习Objective-C的主要目的都是为了能更好的进行IOS项目的开发。那么,Objective-C的学习开发要什么条件呢?要么就是用Linx系统下编写Objective-C,然后下载sdk,设置好运行环境。具体操作网上应该有教程。还有最理想的状态就是在苹果系统上开发了。
用苹果系统的话,一般都是用苹果电脑开发。但是苹果机子价格昂贵,让屌丝们都望尘莫及,无形中提高了门槛。但是,是不是PC机就不能进行苹果开发,就不能学习Objective-C了呢。当然不是,我们完全可以通过在windows系统中安装一个苹果系统的虚拟机(不过这个对电脑的配置要求比较高,一般至少要给虚拟机分配4G内存才能跑起来)。或者是格出盘来进行安装苹果系统,也就是我们说的黑苹果。
具体安装的方法网上一搜一大堆,这里就不介绍了。我用的是在电脑中安装虚拟机开发。因为之前安装过黑苹果,由于那个驱动要一个个找,太费劲,而且想用下windows系统还的关机进另一个系统,不是很方便。
本系列博文是个人在一边学习《Objective-C基础教程》这本书,一边自己写代码,并将心得体会记录下来和大家一起分享。相信此类博文发表的已经很多了,由于也是初学者,很多讲的不对的地方,大家发现了请狠狠的批评斧正。写本系列的初衷就是记录下学习的历程,和大家一起学习和进步。
好了,言归正传,下面就开始和我一起踏上Objective-C开发之旅吧。
前期准备
1. vmware10 安装 Mac OS X 10.9 虚拟机
(打mac补丁,然后下载了虚拟机镜像包,用懒人安装法。直接替换新建的虚拟机文件,配置后搞定。)
2. 安装vmware tools,设置共享文件夹
(使得虚拟机和主机可以来回切换、设置分辨率,能共享文件。具体操作请教度娘)
(使得虚拟机和主机可以来回切换、设置分辨率,能共享文件。具体操作请教度娘)
3. 下载 xcode 5.1.1dmg 镜像。
(安装即可,前期准备就绪)
(安装即可,前期准备就绪)
新建项目尝试
1. 新建 command tools -> 选择类型选择 “Foundation”, 如图:
即可用命令行写objective - c代码。
默认有个main.m 文件,有个Hello world 的函数。可以尝试下如何调试,设置断点等。
默认有个main.m 文件,有个Hello world 的函数。可以尝试下如何调试,设置断点等。
下面贴上基本常用的快捷键,供参考:
基本类型的使用
布尔类型(BOOL,返回值为:YES和NO)
字符串类型(NSString,定义函数的时候要用 * 符号)
由于第一篇的内容比较简单,主要以配置环境和新建项目为主。好了,接下来就直接上代码。
1 // 2 // main.m 3 // ch1 4 // 5 // Created by pcbeta on 14-11-14. 6 // Copyright (c) 2014年 julian. All rights reserved. 7 // 8 9 #import <Foundation/Foundation.h> 10 11 BOOL areIntsDifferent (int thing1, int thing2) 12 { 13 if (thing1 == thing2) 14 { 15 return (NO); 16 } 17 else 18 { 19 return (YES); 20 } 21 } //最基本的判断两个变量是否不同的函数。如果相同,返回NO;如果不同,返回YES 22 23 NSString *boolString(BOOL yesNO) 24 { 25 if(yesNO == NO) 26 { 27 return (@"NO"); 28 } 29 else 30 { 31 return (@"YES"); 32 } 33 } //在函数前面要添加 “*”号。表示返回的内容是字符串。 34 35 36 int main(int argc, const char * argv[]) 37 { 38 39 // @autoreleasepool { 40 // 41 // // insert code here... 42 // NSLog(@"Hello, World!"); 43 // 44 // } 45 46 BOOL areTheyDifferent; 47 int v_thing1 = 5; 48 int v_thing2 = 5; 49 //函数调用 50 areTheyDifferent = areIntsDifferent(v_thing1, v_thing2); 51 //输出结果 52 NSLog(@"Are %d and %d different? %@", v_thing1, v_thing2, boolString(areTheyDifferent)); 53 54 //定义第三个变量 55 int v_thing3 = 10; 56 //重新赋值 57 areTheyDifferent = areIntsDifferent(v_thing1, v_thing3); 58 //输出结果 59 NSLog(@"Are %d and %d different? %@", v_thing1, v_thing3, boolString(areTheyDifferent)); 60 61 return 0; 62 }
运行结果: