Objective-C入门-对象(初识消息)(1)

发布于:2022-12-02 ⋅ 阅读:(159) ⋅ 点赞:(0)

本文所有的内容都来自Objective-c第二版书籍,进一步阅读请戳:

Objective-C编程(第2版) (豆瓣)

 一、创建第一个Objective-C程序

 Objective-C代码的文件,一般都是以.m结尾

 二、#import和#include的区别

三、使用NSDate类,实现打印时间并计算当前时间距离1970年的秒数

NSDate类是属于Foundation框架中的。

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        NSDate* now = [NSDate date];
        NSLog(@"This NSDate object lives at %p", now);
        NSLog(@"The Date is %@", now);
        double seconds = [now timeIntervalSince1970];
        NSLog(@"It has been %f seconds since the start of 1970.", seconds);
    }
    return 0;
}

command+r:运行快捷键

运行结果如下:

  四、NSDate* now = [NSDate date];展开讲述

以上的代码称为消息发送,必须写在一对方括号中,并且必须包含接收方和选择器。

 

date方法执行后,NSDate类会在堆上给NSDate实例生命一部分内存,将NSDate实例初始化为当前日期/时间,然后返回新对象的地址。

NSLog()会先输出日期、时间、程序名称和进程ID。

%p:会输出对应对象的地址信息

%@:会输出相应对象的“描述信息”。

五、double seconds = [now timeIntervalSince1970]; 

为什么选择1970年?

因为OS X和iOS系统都是基于Unix开发的,而1970年正是“Unix时代”的开始。

六、Objective-c语言命名规范

OC语言是区分大小写的。

  • 指向实例的变量使用“驼峰拼写法”,以小写字母开头,其他每个单词第一个字母需要大写。例如:now,weightLifter
  • 方法的命名如同实例变量,例如:date,timeIntervalSince970
  • 类的名称以大写字母开头,接下来的单词继续使用驼峰拼写法,例如:NSDate,NSMutableArray

一般来说,类的名称是要加前缀的,这样可以避免相似的类名造成混乱。

通过前缀还可以知道它是属于哪个框架的,Foundation框架的类使用NS前缀,NS是NEXTSTEP的简写。

七、练习

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        NSHost* host = [NSHost currentHost];
        NSString* name = [host localizedName];
        NSLog(@"my computer name is %@", name);
    }
    return 0;
}

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到