此篇教程希望在阅读本人c教程后阅读。
因为objective-c (以后简称oc)本质上就是c,它完全支持c语言的语法。
所以希望有基础后在看此篇教程。
(PS:学习ob 可以自行弄台MAC 或去远景黑哥苹果,再不然弄一个vm虚拟机。在不行 ,其实win 也可以搭建环境请自行百度)
首先让我们先做一个 hello world
#import <Foundation/Foundation.h>
int main(int argc,constchar * argv[])
{
@autoreleasepool {
// insert code here...
NSLog(@"Hello, World!");
}
return0;
}
#import 就类似于c语言中的include 。java中的倒入也是import这个,只是没有前面那个#符号。
#import <Foundation/Foundation.h>的意思是表示Foundation这个框架下的Foundation.h这个头文件。
@autoreleaeasepool
在这个代码块中的对象内存会被自动释放不需要手动,
一般在iOS 中很少会自己写。有点类似java的垃圾回收。
nslog类似c 的 printf,java的 system.out.print
就是输出,在cocoa(核心API,其组成分别有Foundation 和 AppKit)
中对所有函数,常量和类型都加有ns前缀,这是用来告诉编译器,这个
东西来自Cocoa的工具包
@符号 是oc特有的特性之一,表示字符串作为cocoa的nsstring元素来处理。
nsstring 为什么要从新弄这个字符串类型呢?因为就oc而言,它是在c语言基础
之上开发的程序语言所以,要在自己的字符串对象上弥补自身的不足,在nsstring
类型上加入新的功能和方法。
objc是兼容c的,所以c的调用方式在objc中依然可以使用。
但是OC 的方法调用不得不说一说,十分有(gui)趣(yi)
整个表达式也叫做消息表达式。这是官方的正式称呼。
[接受方 消息];
当调用参数多的时候
[接收方法 名子1:参数1 名子2:参数2 名子3:参数 ... ]
但这样写你在程序中仍然看不到这样的标准影子,
[对象 方法名字:参数1 参数名字2:参数2]
上面的格式是正确的调用格式,你可以把方法名字理解成第一个参数的参数名字
定义的时候也是这样
-或者+(返回类型)方法名字:(参数类型)参数1 参数名字2:(参数类型)参数2
语法这样闹我只能表示呵呵。
如果你是学习java 过来的话,可能你会知道bean 那些自动生成get /set方法。
在oc编程中也会遇到。set方法你就用你以前的命名形式就可以,
但是如果你要写get方法就不能使用以前的习惯
要直接用目标的名字来写,不能再用get目标名称。当然这只是一个规定。
你可以用你想用的方法,但是这样盲目的用get做前缀可能在oc中会出现问题。还是规范最好。
nsstring string NSMutablestring stringbuffer