18:description方法】的更多相关文章

本小节知识点: [掌握]description基本概念 [掌握]description重写的方法 [了解]description陷阱 1.description基本概念 NSLog(@"%@", objectA);这会自动调用objectA的description方法来输出ObjectA的描述信息. description方法默认返回对象的描述信息(默认实现是返回类名和对象的内存地址) description方法是基类NSObject 所带的方法,因为其默认实现是返回类名和对象的内存地…
1.description方法的一般用处 1: // 指针变量的地址 2: NSLog(@"%p", &p); 3: // 对象的地址 4: NSLog(@"%p", p); 5: // <类名:对象地址> 6: NSLog(@"%@", p); 1: Class c = [Person class]; 2: 3: // 1.会调用类的+description方法 4: // 2.拿到+description方法的返回值(NS…
特别注意: 千万不要在description方法中同时使用%@和self,同时使用了%@和self,代表要调用self的description方法,因此最终会导致程序陷入死循环,循环调用description方法 1.NSLog回顾   大家都知道,我们可以用NSLog函数来输出字符串和一些基本数据类 1 int age = 11; 2 NSLog( @" age is %d", age); * 第2行的%d代表会输出一个整型数据,右边的变量age会代替%d的位置进行输出 * 输出结果…
OC 初识NSString,self关键字,继承,成员变量的可见性,description方法 初识 NSString: char * string = "旭宝爱吃鱼"; 常量字符串存储在静态区 NSString * string = "旭宝爱吃鱼"; OC对象存储在堆区 创建NSString对象: 1.用字面量来创建 NSString * string = @"旭宝爱吃鱼"; 2.通过类方法创建NSString对象 NSString * for…
类的本质 1. 类也是个对象 其实类也是一个对象,是Class类型的对象,简称“类对象” Class类型的定义 typedef struct objc_class  *Class; 类名就代表着类对象,每个类只有一个类对象 2. +load和+initialize +load l   在程序启动的时候会加载所有的类和分类,并调用所有类和分类的+load方法 l   先加载父类,再加载子类:也就是先调用父类的+load,再调用子类的+load l   先加载元原始类,再加载分类 l   不管程序运…
PS:经过之类重写description方法后,个人感觉有点像C#中的ToString();方法 一.description方法的作用:(输出所有的OC对象都用%@) 1.默认情况下(不重写description方法时)对象的输出信息是:<类名: 地址名> 例:<Person: 0x7fedc9c09720> 2.NSLog(@"Person对象:%@",p);--原理:会调用对象的-description方法,并且把-description方法返回的OC字符串…
知识回顾 在前面已经介绍了如何定义类和创建并初始化对象,比如有Student这个类 1.Student.h 1 #import <Foundation/Foundation.h> 2 3 @interface Student : NSObject { 4 int _age; 5 } 6 - (void)setAge:(int)age; 7 - (int)age; 8 @end 2.Student.m 1 #import "Student.h" 2 3 @implementa…
发布自米高 | Michael - 博客园,源地址:http://www.cnblogs.com/michaellfx/p/4232205.html,转载请注明. 本文结构 基础实现 性能优化 参考 关键字:Objective-C OC description函数 自动打印属性及属性值 运行时枚举成员变量 基础实现 使用NSLog或po,Xcode默认调用对象的description方法,若没实现,则打印对象的地址,不方便查看对象的状态.特别地,在RESTful编程中,服务器返回的JSON对象往…
1.description方法是NSObject自带的方法,包括类方法和对象方法 + (NSString *)description; // 默认返回 类名 - (NSString *)description; // 默认返回 <类名:内存地址> 2.默认情况下利用NSLog和%@输出对象的时返回的就是类名和内存地址 3.修改NSLog和%@的默认输出:重写类对象或者实例对象的description方法即可.因为NSLog函数进行打印的时候会自动调用description方法 /*******…
一.类的本质 1.类也是个对象 其实类也是一个对象,是Class类型的对象,简称“类对象” Class类型的定义 typedef struct objc_class *Class; 类名就代表着类对象,每个类只有一个类对象 2.+load和+initialize +load 在程序启动的时候会加载所有的类和分类,并调用所有类和分类的+load方法 先加载父类,再加载子类:也就是先调用父类的+load,再调用子类的+load 先加载元原始类,再加载分类 不管程序运行过程有没有用到这个类,都会调用+…
A. 实例对象打印-description 1.当使用NSLog函数并且使用%@占位符的时候,会调用对象的-description方法 2.拿到-description的返回值,显示到console中 默认返回指针地址 @implementation Person - (NSString *)description { return [NSString stringWithFormat:@"age = %d, name=%@", self.age, self.name]; } @end…
1.Student.h 1 #import <Foundation/Foundation.h> 2 3 @interface Student : NSObject { 4 int _age; 5 } 6 - (void)setAge:(int)age; 7 - (int)age; 8 @end 2.Student.m 1 #import "Student.h" 2 3 @implementation Student 4 - (void)setAge:(int)age { 5…
------------------------------------------- 继承 一段代码: #import <Foundation/Foundation.h> @interface Animal : NSObject {     int _age; } -(void)setAge:(int)age; -(void)eat:(NSString *)foodName; -(void)run; @end @interface Dog : Animal -(void)lookHome;…
自定义类需要自己覆写description方法,否则打印信息时就会调用NSObject类所实现的默认方法.(如果不覆写,只会输出类名和对象的内存地址的信息,这只有在判断两个指针是否指向同一对象时才有用处.) debugDescription方法,此方法的用意与description非常相似.区别在于,debugDescription方法是开发者在调用器(debugger)中以控制台命令打印对象时才调用的. 例:LLDB的“po”命令可以完成对象的打印(print-object)工作. 1.一般普…
在开发过程中, 往往会有很多的model来装载属性. 而在开发期间经常会进行调试查看model里的属性值是否正确. 那么问题来了, 在objective-c里使用NSLog("%@",model)这行代码打印出来的却是model的地址. 不是我们所想要的结果~! 有没有办法解决这个问题尼,答案那就是有-!只需要重写- (NSString *)description方法即可.如下代码: - (NSString *)description { return [NSString string…
知识回顾在第5讲中已经介绍了如何定义类和创建并初始化对象,比如有Student这个类1.Student.h 1 #import <Foundation/Foundation.h>23@interface Student : NSObject {4int _age;5}6 - (void)setAge:(int)age;7 - (int)age;8 @end  2.Student.m  1 #import "Student.h" 2 3@implementation Stud…
自定义构造方法: 我们已经知道创建对象分两步,1:在内存中开辟存储空间,并把地址存储在指针变量里,2:调用指针变量的初始化方法init初始化该对象. Student * stu = [Student alloc]; stu = [stu init]; 在这里,init方法是系统原始的初始化方法,但有时我们需要重写该初始化方法,使其在创建该对象的同时赋予它属性的值. 假如,我们现在要重写原始初始化方法,使其创建一个有年龄(age)的stu. 首先,在Student.h中声明自定义方法: - (id…
[Objective-C]07-自定义构造方法和description方法   // 构造方法:用来初始化对象的方法,是个对象方法,”-"开头// 重写构造方法的目的:为了让对象创建出来,成员变量就会有一些固定的值/* 重写构造方法的注意点1.先调用父类的构造方法([super init])2.再进行子类内部成员变量的初始化 */ // 重写-init方法//- (id)init//{//    // 1.一定要调用回super的init方法:初始化父类中声明的一些成员变量和其他属性//   …
Dog *d = [Dog new]; //查看对象地址 NSLog(@"\n d= %p ",d);//打印的为地址 例:0x1001002e0 //查看对象实例变量的值 NSLog(@"\n %d",[d age]); //打印d的对象 NSLog(@"\n@=",d); //例 <Dog : 0x1001002e0> 调用了对象的 description方法 重写父类的description -(NSString *)descr…
一. 分类-Category 1. 基本用途:Category  分类是OC特有的语言,依赖于类. ➢ 如何在不改变原来类模型的前提下,给类扩充一些方法?有2种方式 ● 继承 ● 分类(Category) 2. 格式 ➢ 分类的声明 @interface 类名 (分类名称) // 方法声明 @end ➢ 分类的实现 @implementation 类名 (分类名称) // 方法实现 @end 3. 好处 ➢ 一个庞大的类可以分模块开发 ➢ 一个庞大的类可以由多个人来编写,更有利于团队合作 ➢ …
本文文件夹 知识回想 一.自己定义构造方法 二.description方法 说明:这个Objective-C专题,是学习iOS开发的前奏,也为了让有面向对象语言开发经验的程序猿,可以高速上手Objective-C. 假设你还没有编程经验,或者对Objective-C.iOS开发不感兴趣,请忽略. 学习本专题之前.建议先学习C语言专题. 回到顶部 知识回想 在第5讲中已经介绍了怎样定义类和创建并初始化对象,比方有Student这个类 1.Student.h 1 #import <Foundatio…
周所周知,我们在做项目时, 可以在类的.m文件中重写该类的对象的描述description方法: 示例: -(NSString *)description{    NSString *str = [NSString stringWithFormat:@"name:%@ age:%d sex:%@",_name,_age,_sex];    return str;} 注意: 重写description方法的陷阱 千万不要在description方法中同时使用%@和self,下面的写法是错…
description方法 #import "Person.h" @implementation Person - (void) setAge : (int) age { _age = age; } /** 决定了实例对象的输出结果 **/ - (NSString *) description { return [NSString stringWithFormat : @"age=%i", _age]; } /** 决定了类对象的输出结果 **/ + (NSStri…
1.NSLog回顾 众所周知,我们可以用NSLog函数来输出字符串和一些基本数据类 1 int age = 11; 2 NSLog(@"age is %i", age); * 第2行的%i代表会输出一个整型数据,右边的变量age会代替%i的位置进行输出 * 输出结果: 2013-04-19 21:43:47.674 构造方法[483:303] age is 11 2.NSLog输出OC对象 其实,除了可以输出基本数据类型,NSLog函数还可以输出任何OC对象 1 Student *st…
自定义一个Person类 @interface Person : NSObject { int _age; double _height; double _weight; NSString *_name; NSString *_tel; NSString *_email; } - (void)setAge:(int)age; - (void)setHeigth:(double)height; - (void)setWeight:(double)weight; - (void)setName:(N…
description是所有类都有的一个方法. 我们重写这个方法,可以自定义实例输出的信息. 比如我们创建一个Person类: 在.h文件中添加两个属性: #import <Foundation/Foundation.h> @interface Person : NSObject @property (strong, nonatomic) NSString *name; @property (assign, nonatomic) int age; @end 在.m文件中重写descriptio…
四.OC基础--1.文档安装和方法重载, 1. 在线安装 xcode-> 系统偏好设置->DownLoads->Doucument->下载 2. 离线安装 百度xcode文档 3. 方法重载: 是指在一个类中定义多个同名的方法 在OC中没有重载 2.self和super&static, self和super: 1. self理解: 谁调用当前方法, self就代表谁. 比如: 在对象方法中,self代表的是对象, 因为只有对象才可以调用对象方法 在类方法中, self代表的…
在第5讲中已经介绍了如何定义类和创建并初始化对象,比如有Student这个类 1.Student.h 1 #import <Foundation/Foundation.h> 2 3 @interface Student : NSObject { 4 int _age; 5 } 6 - (void)setAge:(int)age; 7 - (int)age; 8 @end 复制代码 2.Student.m 1 #import "Student.h" 2 3 @implemen…
//重写description方法 //description建议大家在实际开发中都要重写这种方法.然后将类中有意义的成员变量打印出来,这样很方便我们调试程序 -(NSString *)description { //优化 return [NSString stringWithFormat:@"我的cpu=%.1f我的内部存储是=%.1fMB",_cpu,_ram]; NSString *result = [NSString stringWithFormat:@"我的cpu=…
http://www.cnblogs.com/mjios/archive/2013/04/19/3031412.html -自定义构造方法和description方法 1 默认的构造方法是什么?有什么缺陷? 2自定义构造方法在.h 和.m 以及main()中如何实现? 3.出现的关键字是什么? 4.简化前和简化后各是什么形式? 5.description方法是做什么的? 6.输出OC对象格式符是什么? 7.如何重写description方法 8.self到底是什么?…