- 内容简介
- 译者序
- 前言
- 第 1 章 安装配置新项目
- 第 2 章 Flexbox 布局介绍
- 第 3 章 用 React Native 开发一个应用
- 第 4 章 在 React Native 中使用导航
- 第 5 章 动画和滑动菜单
- 第 6 章 用 React Native 绘制 Canvas
- 第 7 章 使用 React Native 播放音频
- 第 8 章 你的第一个自定义视图
- 第 9 章 Flux 介绍
- 第 10 章 处理复杂的应用程序状态
- 第 11 章 使用 Node 来实现服务端 API
- 第 12 章 在 React Native 中使用文件上传
- 第 13 章 理解 JavaScript Promise
- 第 14 章 fetch 简介
- 第 15 章 在 iOS 中使用 SQLite
- 第 16 章 集成 Google Admob
- 第 17 章 React Native 组件国际化
- 附录 A React.js 快速介绍
- 附录 B Objective-C Primer
- 附录 C webpack 入门
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
实现
下面是 Book 类的实现:
#import "Book.h" // 引入接口声明 @implementation Book @synthesize title, author; // 自动生成 getter/setter 方法 - (id) init { self = [super init]; if (self) { // 在这里写初始化代码 } return self; } - (id) initWithTitle: (NSString *)aTitle{ self = [super init]; if (self) { title = [aTitle copy]; } return self; } + (id) createBookWithTitle:(NSString *)aTitle { Book *book = [[[self alloc] initWithTitle:aTitle] autorelease]; return book; }
+ (id) createBookWithTitle:(NSString *)aTitle andAuthor:(NSString *)anAuthor { Book *book = [[[self alloc] initWithTitle:aTitle] autorelease]; [book setAuthor:anAuthor]; // 或者可以使用点号语法 // book.author = anAuthor; return book; } - (void) dealloc { [title release]; [author release]; [super dealloc]; } @end
实现部分中所有的方法必须在 @implementation 和 @end 标记之间。
@synthesize 会生成需要的 getter/setter 方法。
init 方法先调用父类的 init 方法[super init],以便可以初始化,然后返回一个实例。if 语句检查 self 是否是一个有效的实例。
你一定想知道 id 是什么?id 允许创建一个松散的弱类型变量,变量的类型在运行时才能决定。尽管 id 没有星号,但它代表一个指向对象的指针,因此不能把它当作一个基本类型来使用,如 int、float、double 或 char。
例如,这是一个正确的代码:
NSObject *obj = [Book createBookWithTitle:@"A Brave New World"];
而像这样子就不对了:
int i = [Book createBookWithTitle:@"A Brave New World"];
在 Objective-C 中,释放一个对象时使用 release 或 autorelease 方法。内存管理有一整套规则,简而言之,你创建或分配的对象都要在调用完成后使用 release 来释放。使用 autorelease 创建的方法会通知系统,Book 对象应该在不久的将来被销毁。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论