objective-c 学习第一节 HelloWorld

来源:互联网 发布:网络调研的方法有哪些 编辑:程序博客网 时间:2024/05/16 10:05

年初的时候懵懵懂懂就产生了要发展IOS开发的想法,到了年尾,各种机缘巧合之下,终于开始了这段奇妙的旅程。OCSwift的要的选择也确实让我犹豫了挺久,Swift作为新生的苹果亲儿子,简洁有好上手等一些特性非常吸引。但最大的问题也是出现在这里“新生”,意味着我这个IOS开发新手没有更多的资源去短时间决解问题,包裹自己公司里的大神和百度,另外一个很重要的原因就是我必须要看懂同事写的源码并参与进去。而绝大部分他们开发都是OC语言。所以OC就成我迈向IOS开发的第一个敲门砖。另外,我始终相信一段好的旅程永远也不嫌晚.祝我好运!


在开始学习之前,特意去百度了好些资料,感觉可能需要了解过其他的2门语言会更好,一个是C,另一个就是面向对象的语言了比如非常纯正的JAVA.我个人的见解是如果有学习过java,清楚面向对象的概念和高级一点的面向接口的编程。那么相对来说还是会好消化一点。开发工具是Xcode.这个就是苹果已经为我们准备好了的了。在开发Android的时候我是喜欢Eclipse,放到固态里面其实也没大家吐槽的那么慢,至于AndroidStudio,我也用过1.4的正式版,写过小东西。非常强大,特别是界面XML这块。但其他体验就一般般了。bug的什么的还是会有的,希望以后慢慢变的更好吧,AndroidStudio已经是一个不可逆的趋势了。


好吧 ,第一个程序永远要从HelloWorld 开始,Xcode什么的下载安装什么的比Android容易多了 这里就不多介绍了,app Store下载就行。


新建一个 项目




跟Android 倒是差不多,第一个就是项目名称了。然后第二个就是组织者名称了,这个是公司就写公司,是个人就随意。第三个说是组织者的唯一标识,在我理解就是跟包名差不多。所以还是挺重要的。最后就是语言选项,用OC。其他的语言还有Swift,C和C++.讲道理Xocde还是挺强大的。Eclipse也可以开发就是要装插件。远没这个方便。


好了 新建完工程之后,就到了如下界面




主动生产一个Main.m文件


**  OC的源文件拓展名为.m  

**  编译器会将.m文件编译为.o目标文件 所以main.m编译成功之后会变成main.o目标文件 


 


额,截的图好像不太清楚,还是来直接看代码吧


////  main.m//  HelloWorld////  Created by cd on 15/11/4.//  Copyright © 2015年 cd. All rights reserved.//#import "Foundation/Foundation.h"#import "Person.h"#import "Car.h"#import "Lamborghini.h"#import "Alto.h"int main(int argc, const char * argv[]) {        //创建一个自动释放池    @autoreleasepool {        // insert code here...        //@""表示是一个字符串,这是oc语言的一个特点。        //NS开头是oc的命名习惯,一开始真的有点不习惯。。        //这里的字符串和java有很大的不同,oc的字符串是个对象类型,有指针(不是基本类型)        NSString *str =@"cd";                //@%表示打印一个字符串对象        NSLog(@"Hello, World! %@",str);                                Person *person =[[Person alloc] init];                //        [person setName: @"CD"];        person.name =@"Mr.CD";//        [person setAge:22];        [person shopping:5000];        person.age =24;        //        NSString *person_name =[person name];        NSString *person_name =person.name;        NSLog(@" get name is a %@",person_name);        NSInteger person_age =person.age;//        NSInteger person_age =[person age];        NSLog(@"GET age is a %ld",person_age);                Car *car1 =[[Lamborghini alloc]init];        Car *car2=[[Alto alloc]init];        [person drive: car1];        [person drive:car2];                                  }    return 0;    }


嗯,没错。一进来就是一个Main方法。

#import关键字是导入头文件的。和java的import小效果差不多吧。但是由于开源和闭源的缘故。java能点击打开能看到源码。而这个只能看到定义好的头文件定义。这个就仁者见仁,智者见智了。我是觉得吧开源出来的东西确实有很好的一面。

Foundation.h是系统提供给我们的一个最基本的开发库,我们可以根据里面的定义一个一个来学习。

接着看代码。这里有个很重要的概念就是自动释放池,也不太过多介绍了我也不是很懂。百度了下这是OC的一大特色。相比较我知道的java中的GC,这个复杂程度我觉得要高一点,因为应该以后可能要做到手动管理这个。而java中都是自动的,像一个公司专门请的清洁工,你的工作岗位有垃圾了,它可能等下就过来清一下。但可能每次都没那么及时。创建一个工程的时候,自动释放池是自动创建的,把代码写到这块里面就可以了。我以后学的差不多了再专门讲下这块!!

//@""表示是一个字符串,这是oc语言的一个特点。        //NS开头是oc的命名习惯,一开始真的有点不习惯。。        //这里的字符串和java有很大的不同,oc的字符串是个对象类型,有指针(不是基本类型)        NSString *str =@"cd";                //@%表示打印一个字符串对象        NSLog(@"Hello, World! %@",str);


嗯,又有一个比较新奇的地方就是 OC中的字符串不是个基本类型,它拥有指针,是个对象类型。去定义字符串对象的时候要加@。使用NSLog打印对象,用格式化输出,占位符是%@。打印字符串的对象的时候,输出的是字符串的值。这个和java中的System.out.println输出结果是一样的。说白了就是调用对象的toString方法吧。当然OC也是会调用一个方法的。

其他的基本类型都差不多,比如 布尔类型 ,整形等都差不多 。就不多做介绍了。

好了 ,到这里一个HelloWorld就差不多了。

总结了下,OC基本的定义方法。字符串对象和打印信息方法 。

最后点击左上角的 运行 按钮




好了.可以看到运行结果了。多点点Xode左右上角的几个按钮,你就知道怎么用了。



1 0