OC基础语法学习4:自定义构造方法和description方法
2015-05-30 01:23
483 查看
一、构造方法
构造方法默认是:init-(instancetype)init { if(self = [super init]) { //初始化成员变量 } return self; }
自定义构造方法:
.h文件中
#import <Foundation/Foundation.h> @interface Person : NSObject @property int a; //声明构造方法 -(instancetype)initWithA:(int)a; @end
.m文件中
#import "Person.h" @implementation Person //实现构造方法 -(instancetype)initWithA:(int)a { if (self = [super init]) { _a = a; } return self; } @end
调用:
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { //调用构造方法 Person * p = [[Person alloc]initWithA:10]; NSLog(@"%@",p); } return 0; }
注意:
自定义的初始化方法,方法名称initWithXXX开头后面的随意,千万不能写成initwithXXX,否则编译器报错
报错的结果:
cannot assign to 'self' outside of a method in the init family
二、description方法
description方法的使用:description方法默认实现的时返回类名和对象的内存地址。
重写description方法,来实现自己想要的输出
.h文件中
#import <Foundation/Foundation.h> @interface Person : NSObject @property int a; //声明构造方法 -(instancetype)initWithA:(int)a; //声明description方法 -(NSString*)description; @end
.m文件中
#import "Person.h" @implementation Person //实现构造方法,initWithXXX -(instancetype)initWithA:(int)a { if (self = [super init]) { _a = a; } return self; } //实现description 方法 -(NSString*)description { return [NSString stringWithFormat:@"a = %d",_a ]; } @end
调用:
#import <Foundation/Foundation.h> #import "Person.h" int main(int argc, const char * argv[]) { @autoreleasepool { //调用构造方法 Person * p = [[Person alloc]initWithA:10]; //自动调用description方法 NSLog(@"%@",p); } return 0; }
输出结果:
2015-05-30 01:10:44.163 自定义构造方法[970:96905] a = 10
相关文章推荐
- oc 的一些概念
- [代码例程] iPhone开发入门(7)--- 从C/C++语言到Objective-C语
- IOS 面试习题 Object-C
- objective-c block 讲解
- IOS求职之OC面试题
- iOS OC和Swift混编
- OC_继承,初始化
- OC 省市区划分
- iOS开发 — Quartz 2D知识点应用 (制作了一个Demo,源代码)
- 编写 Objective-C 代码/掌握基本的编程技能 之 读后笔记
- c语言入门(一)
- c语言入门(三)分支结构
- c语言入门(四)循环
- c语言入门(八)结构体
- c语言入门(七)函数
- 关于TCBlobDownload中续传的问题
- 将汉字转成GB2312放进网址进行请求
- Objective-C NSString--(2)
- 黑马程序员---oc 协议和代理
- 黑马程序员---oc block