想了很久,不知道前言应该如何写好。写了又删,删了又写,想到最后得出一些话:过去的学习有些闭门造车,导致个人对外面世界的了解不够深入,错过了很多的机会。但是,目前还不算迟,还可以继续向前追赶。
今天是学习IOS开发的第三天,主要是学习上OC的语法。还好,自己以前在大学搞了几年的C语言和一段时间的C++,而且有点Linux命令行操作的基础,下面这些基本不算什么问题。还是那一句,技术是一通百通的。之前在大学的时候,一直认为,把C++拿下,后面的语言其实应该都不会是什么问题。当然,这只是从语法和概念上面的理解来说,如何去应用它到实处才是最重要的。说起C++,我经常跟自己说,人得一只手,就是一个C++的概念了。手臂是基类,手指从手臂中长出来,相当于继承。手指有不同的形状,相当于多态。每个手指的指纹就是它本身的属性。手心的条纹就是那个STL了。至于如何继承,如何多态,展开就是了。
其他就不说了,说会今天学了些什么吧。自己是从一个培训机构的视频看起,下面就是做一些简单的总结好了。
#import <Foundation/Foundation.h>//包含的头文件
@interface Car : NSObject //定义一个类,注意关键字以及必须继承NSObject这个基类
{
@public//与C++一样,私有与公有
int wheels;
double speed;
}
- (void) run;//类的方法的声明
- (void) updatewheels : (int)dnum;//单一参数的方法
- (void) updateall : (int)dnum : (double)s;//多参数的方法
@end
int main()
{
Car *c=[Car new]; //使用new来创建一个指向Car类的对象指针
c->wheels=4;
c->speed=20.2;
[c run];//调用类的方法,在OC中是叫做消息的传递,感觉怪怪的。
[c updatewheels:5];
[c run];
[c updateall:10:8.5];
[c run];
return 0;
}
@implementation Car//注意关键字是不一样的了,方法的实现
- (void) run
{
NSLog(@"%i个轮子,%f的速度\r\n",wheels,speed);
}
-(void)updatewheels : (int)dnum
{
wheels=dnum;
}
-(void)updateall : (int)dnum : (double)s
{
wheels=dnum;
speed=s;
}
@end
从整体的结构来讲,跟我们刚开始学习C++是如何定义和使用一个简单的类是一样的。只是某些语法上有小小问题。当然不能去抱怨这种语言怎么这么。。其实还好,
慢慢习惯了,就非常了。刚开始学习Xcode,感觉软件的自动补全功能好像不是很完善,可能会有其他的插件好像VS的小番茄一样,明天找找关于Xcode的必备工具先。
下面就是关于编译连接的结果:
编译文件的命令:打开终端,使用cd命令进入到文件所在的目录(其实就是跟Linux一样的,基本的命令记住一下就行了,命令也不是很多)
cc -c xxx.m
按下回车之后,ls一下就可以看到文件夹多了一个 .o 格式的目标文件
连接:cc xxx.o -framework Foundation
因为使用了Foundation框架的API,因此添加头文件的路径
按下回车之后,ls一下就可以看到文件夹多了一个 a.out 格式的可执行文件
为什么叫.o和a.out文件呢,自己想一下对应的英文也可以的。
好,今晚暂时总结到这里。明天再学习!