iOS战记 ----OC基础语法之战(二)
2015-06-05 20:23
423 查看
iOS战记 ----OC基础语法之战(二)
一个机械设计者的转行之战。一位记者在某一个iOS开发公司采访一个健步如飞的老大爷。
记者问:大爷,你身体这么棒,保持年轻的秘诀是什么?
大爷回答说:一周工作七天每天加班只睡两个小时。
记者:大爷您今年高寿啊?
大爷:你大爷!!!我今年24~~~~~~~~~~~~~
下面讲解OC中的具体的类,还有对象的创建和实现方法:
<1>先创建一个Person类
</pre><p></p><p></p><pre name="code" class="objc">#import <Foundation/Foundation.h> @interface Person : NSObject { // @public // @protected // @private // public(公有的):实例变量可以在类的外部和内部操作 // protected(受保护的,默认的):实例变量只能在该类和其子类内操作 // private(私有的):实例对象只能在该类内访问 // 所谓的内部,指的是相应类的@implementation 和@end之间 //实例变量的声明方法 NSString *_name; NSInteger _age; NSString *_gender; }
<pre name="code" class="objc">//属性的声明方法 //@property NSString *_gender; //初始化方法 -(id)initWithName:(NSString *)na; //当前类具有的行为。 -(void)sayHi; //设置器(赋值方法) -(void)setName:(NSString *)na; //访问器(取值方法) -(NSString *)getName; // 便利构造器 +(instancetype)personWithName:(NSString *)na;
注意1):这里要注意我后面写的方法传入的参数写成na而不是写成name,是因为我开始学的时候容易把这个传入的参数和声明实例变量的名字容易混淆。后来慢慢习惯了声明实例变量的时候变量名字前加"_"。
注意2):我声明的属性写法是简写,是为了和上面的实例变量对比,其实实际的写法为:@property (nonatomic, copy) NSString *gender;
为了一些基础差和零基础的人的好理解,可以先按我代码写的初步理解。
<2>在Person类的.m中实现方法
#import "Person.h" @implementation Person //属性的实现 //@synthesize _gender = ge; -(id)initWithName:(NSString *)na { self = [super init]; if (self) { _name = na; } return self; } -(void)setName:(NSString *)na { _name = na; } -(NSString *)getName { return _name; } //便利构造器 +(instancetype)personWithName:(NSString *)na { Person *person = [[Person alloc]initWithName:na]; return person; } @end
注意1):self是给本对象发送消息,super是给本对象的父类对象发送消息。
注意2):上面的 便利构造器中的 personWithName:(方法名)⭐️⭐️⭐️⭐️必须有,后面会有一个匿名函数:block,它是可以没有函数名的。
总结:
OC中的方法分两种:类⽅方法和实例方法。类方法:只能类使⽤,例如:+(id)alloc
⭐️⭐️⭐️⭐️注:类方法中不能使⽤ 实例变量⭐️⭐️⭐️⭐️
实例方法:只能对象使用,例如: -(void)sayHi
⭐️⭐️⭐️⭐️id是泛型,只对对象类型⭐️⭐️⭐️⭐️
id 创建类型不加*号,其他都加星号*。
相关文章推荐
- 如何将Nios II硬件和软件合成一个文件(NIOS II)烧进EPCS falsh
- IOS开发类书--目录总结
- iOS:KVO/KVC 的概述与使用
- iOS开发者遇到审核失败的原因及解决办法
- 编译vlc for ios
- 制作iOS Ad-Hoc测试应用
- iOS报错 -pie can only be used when targeting iOS 4.2 or later
- iOS开发系列--并行开发其实很容易 --多线程开发
- Mac下顯示當前文件目錄(配置open cv on ios)
- iOS应用程序生命周期(前后台切换,应用的各种状态)详解
- iOS中图片拉伸技巧
- iOS 工程解耦后 消息传递方式
- IOS 获取文本的高度和宽度
- E430(c) 修改版BIOS刷入攻略
- (转载)ios关闭虚拟键盘的几种方法
- IOS开发笔记(2)页面之间传递数据几种方式比较
- iOS推送 (百度推送)
- iOS常用快捷键
- iOS中的动画
- iOS 导出 ipa 包时 三个选项的意思