OC学习记录1:类方法与实例方法

本文记录了Objective-C中类方法与实例方法的使用,包括NSDate的类方法如`date`, `timeIntervalSinceNow`等,以及实例方法如`dateByAddingTimeInterval:`。还介绍了消息的嵌套发送、`alloc`与`init`的区别,以及`nil`和`id`类型的使用。" 102454122,8384935,TCP与UDP:SOCK_STREAM与SOCK_DGRAM套接字类型解析,"['网络编程', 'TCP/IP', '套接字', '数据传输']
摘要由CSDN通过智能技术生成

NSDate *now = [NSDate date];

NSDate为一个类,data是其中的一个类方法,这里将now变量指向了NSDate这个类。[ ]中第一个是接收方,后一个是选择器。接受方用于接受选择器中的方法,选择器选择方法。


double seconds = [now timeIntervalSinceNow];

这里seconds定义为double型变量,now作为指向NSDate的实例,可以接收选择器中传入的实例方法。


timeIntervalSinceNow

返回距离Since后面的时间的时间,Now可以替换成具时间,例如1970


NSDate *later = [now dateByAddingTimeInterval:100000];

这里dateByAddingTimeInterval的实例方法后面带了一个实参,实参用冒号与实例方法相连。此方法返回现实x秒后的时间。


unsigned long day = [cal ordinalityOfUnit:NSDayCalendarUnit inUnit:NSMonthCalendarUnit forDate:now];

这里ordinalityOfUnit这个实例方法可以带有三个实参,第一个实参传递NSDayCalendarUnit,第二个实参传递NSMonthCalendarUnit,第三个实参传递指向NSDate类的变量now。简单说就是第一个实参打开日历,第二个实参找到当前月份,第三实参找到天数。但注意这里仍然是一个消息所以接受的还是一个方法。


消息的嵌套发送

前面提到的double seconds = [now timeIntervalSinceNow];语句,在编写代码时是先编写NSDate *now = [NSDate date];语句再使用now作为接收器。使用嵌套方法可以使得程序看起来更加简洁易懂,嵌套的语句为:

double seconds = [ [NSDate date] timeIntervalSinceNow];

系统会按照从内到外的顺序执行嵌套消息,但是嵌套消息有时候会给debug带来麻烦,所以使用的时候要思路清晰。


NSDate *now = [[NSDate alloc] init];

这行语句中有两个必须以嵌套形式发送的消息:alloc和init。总体上这行语句的功能和语句NSDate *now = [NSDate date];一致,alloc的作用是创建一个新的对象,返回指向该对象指针的指针。但是通过alloc所创建的对象必须初始化才能够使用。init的作用就是初始化alloc所创建的对象。对比上面的语句我们可以知道这种方法较为麻烦,上面那一种语句称为便利语句。


nil

在oc中允许向nil指针发送消息,但是没有任何意义,返回值同样。


id delegate

在不知道所声明对象的类的时候可以使用id,id类型可以指向任意oc对象的指针。id后面不需要加*号,默认隐含。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值