文档章节

OC高效率52之实现description方法

阿元
 阿元
发布于 2016/02/18 21:36
字数 269
阅读 25
收藏 0
#import "ViewController.h"
#import "EOCPerson.h"
#import "EOCLocation.h"
@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    self.view.backgroundColor = [UIColor whiteColor];
    EOCPerson *person = [[EOCPerson alloc]initWithFirstName:@"Zou" secondName:@"Jie"];
    NSLog(@"%@",person);
    EOCLocation *location = [[EOCLocation alloc]initWithTitle:@"HaiNan" latitude:15.00f longitude:10.00f];
    NSLog(@"%@",location);
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
#import <Foundation/Foundation.h>
/**
 *  自定义对象要想输出更为有用的信息,只需要覆写description方法并将描述此对象的字符串返回即可
 */
@interface EOCPerson : NSObject
@property (nonatomic , copy , readonly) NSString *firstName;
@property (nonatomic , copy , readonly) NSString *secondName;
-(id)initWithFirstName:(NSString *)firstName
            secondName:(NSString *)secondName;
@end
#import "EOCPerson.h"

@implementation EOCPerson
-(id)initWithFirstName:(NSString *)firstName secondName:(NSString *)secondName
{
    if ((self = [super init])){
        _firstName = [firstName copy];
        _secondName = [secondName copy];
    }
    return self;
}

-(NSString *)description{
    return [NSString stringWithFormat:@"%@ %@",
            _firstName,_secondName];

}
//调试时 po命令的打印
-(NSString *)debugDescription
{
    
    return [NSString stringWithFormat:@"<%@: %p,\"%@ %@\">",[self class],self,_firstName,_secondName];
}
@end
#import <Foundation/Foundation.h>

@interface EOCLocation : NSObject
@property (nonatomic , copy , readonly) NSString *title;
@property (nonatomic , assign , readonly) float latitude;
@property (nonatomic , assign , readonly) float longitude;
-(id)initWithTitle:(NSString *)title
          latitude:(float) latitude
         longitude:(float) longitude;
@end
#import "EOCLocation.h"

@implementation EOCLocation
-(id)initWithTitle:(NSString *)title latitude:(float)latitude longitude:(float)longitude
{
    if ((self = [super init])){
        _title = [title copy];
        _latitude = latitude;
        _longitude = longitude;
    }
    return self;
}
-(NSString *)description
{
    return [NSString stringWithFormat:@"<%@: %p, %@>",[self class],self,@{@"title":_title,@"latitude":@(_latitude),@"longitude":@(_longitude)}];

}

@end


© 著作权归作者所有

阿元
粉丝 5
博文 163
码字总数 109777
作品 0
浦东
程序员
私信 提问
Object-C基础-04-自定义构造方法和description方法

知识回顾 在第5讲中已经介绍了如何定义类和创建并初始化对象,比如有Student这个类 1.Student.h #import <Foundation/Foundation.h> @interface Student : NSObject { int _age;}- (void)se......

Corwien
2016/03/17
23
0
编写高质量iOS与OS X代码的52个有效方法(上篇)

第一章 熟悉Objective-C 1. 了解Objective-C语言的起源 Objective-C(以下简称OC)是C语言的超集,相比C语言多了面向对象的特性。OC使用动态绑定的消息结构,换句话说,只有在运行时才会检查...

还是不够辣
2017/04/06
0
0
OC学习篇之---归档和解挡

前几篇文章说到了OC中的Foundation框架:http://blog.csdn.net/jiangwei0910410003/article/details/41852835,今天我们来看一下OC中的一个重要知识点:归档 OC中的归档就是将对象写入到一个...

jiangwei0910410003
2014/12/11
0
0
OC字符串

1.OC字符串 C语言中,字符和字符串都为常量。 OC中仍然可以使用C的字符串和字符,但其有专有的字符类,可以声明专有的字符串对象。OC的字符串,结尾不考虑尾0,查字符串位置时,起始为0,这和...

飞奔的土豆
2012/12/10
0
0
OC学习篇之---谓词(NSPredicate)

在前一篇文章中我们介绍了OC中一个重要技术通知:http://blog.csdn.net/jiangwei0910410003/article/details/41923401,今天我们在来看一下OC中给我们提供的一个技术:谓词(NSPredicate) OC中...

jiangwei0910410003
2014/12/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

IDEA中package不能引入依赖的解决方法

在IDEA中, 使用maven打包。出现了package后没有将需要的依赖放入包中, 运行会抛出java.lang.NoClassDefFoundError的异常。 解决办法 在pom.xml中加入: <build> <plugins> ...

dreamness
17分钟前
2
0
IDEA模板

import com.google.common.collect.Lists;import java.util.List;/** * @author hll * @date 2019/5/26 - 13:12 */public class Demo { // 模板五 // prsf -- > ......

一只小青蛙
34分钟前
2
0
9.jackjson使用教程

1.导入相关jar <!-- 10.jackson --> <!--10.1 定义了底层的streaming API和实现了Json特性 --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</art......

20190513
38分钟前
2
0
如何使用 rsync 备份 Linux 系统的一些介绍

备份一直是 Linux 世界的热门话题。回到 2017,David Both 为 Opensource.com 的读者在使用 rsync 备份 Linux 系统方面提了一些建议,在这年的更早时候,他发起了一项问卷调查询问大家,在 ...

Linux就该这么学
58分钟前
3
0
以太坊私有链搭建

https://blog.csdn.net/Blockchain_lemon/article/details/80589123

Moks角木
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部