为什么80%的码农都做不了架构师?>>>
1.首先是输出函数,在学c语言时我们都习惯写prinft 但是到了oc中 就要用NSLog 来输出语句了
NSLog(@"Hello, World!");
NSLog有一个注意点就是在双引号前面加上@,说到这不得不提一点,在oc中@出现的频率之高,简直令人发指,你会发现在刚创建.m文件的时候,主函数里面的第一行就是@autoreleasepool 这句代码是作用简单来说就是:可以在某些情况下,大幅度降低程序的内存占用。当你还是新手打着简单的代码,运行却发现出现问题时,不防可以看看是不是哪里缺了一个@,作为刚刚学完 c 转而来学oc的人,这个@加的真的很不适应。
2.类和对象,也是新的名词,形象的解释一下,类就好比 ?这个群体,而你家的大黄啊,小白啊,就是?这个类里面的一个对象。
在创建类的方法 :快捷键(小菊花+n),选择OC X source 里的Cocoa class 新建一个类,类名首字母大写(习惯吧), 这时你的目录里就会出现两个文件 一个.h结尾一个.m结尾。那么一个对象应该有哪些内容呢? 正常来说,每个人都具有他的属性和方法(行为)。属性 就比如人的身高体重年龄学历等等。方法就是人要做的事情,就像是吃饭喝水睡觉之类的事。该如何创建对象的属性和方法呢?
我来演示一下 创建一个Person的类
@interface Person : NSObject
{ NSString *_name;
int weight;
int heigh;}
在.h文件中 NSObject 后面加上两个花括号,里面就是对象具有的属性,这里注意一点,在oc里是有专门对应字符串的数据类型 也就是NSString 不用像在c语言里通过字符数组或者字符指针去接字符串那样来定义字符串了,当你定义完属性之后,接下来要声明对象方法
-(void)eat;
-(void) drink;
这里跟c中的结构体相似,void 也可以被int double NSString*等替换
我们已经声明了对象的属性和方法,那么我们怎么样来实现它们呢?
这时进入到.m文件 把刚刚声明的对象方法复制到这里面来,分号换成花括号,跟结构体是类似的,在这里说明一点,不删除分号直接加花括号也是可以的,系统不会报错,但是规范一些还是写成:
-(void)eat
{
NSLog(@"Apple");
}
-(void) drink
{
NSLog(@"Water");
}
里面的内容就是你要实现的行为方法了。声明实现之后 我们就要调用它们了
在main.m文件中 ,先创建一个对象。
Person * LiHua =[ Person new];//这样你就创建了一个名为李华的对象
[LiHua eat];// 调用这个eat 的方法,也就是会输出 apple 这个字符串
如果想调用对象里面的属性该怎么办呢?
在main.m里添加头文件
首先创建一个Peter的对象,用->来调用对象的属性,但我们看到提示上都有一个红色的横线,这是什么意思呢?
可以尝试一下,如果在此时调用对象里面的属性,其实是调用不到的,这是因为我们在定义Person的属性时,系统默认添加了一个@private的头文件,这个头文件代表私人,我们是看不到的,只能在类文件的方法中调用,在其他类文件和主函数中是无法调用的,解决方案也很简单,只要在.h文件中,声明@public,告诉系统类的属性是公用的就可以了。
这时再调用类的属性
可以看到红线全部都消失了。我们可以对对象的属性进行赋值。
是不是很简单呢?