美文网首页iOS开发学习
Objective-C----内存管理--点语法

Objective-C----内存管理--点语法

作者: iOS开发攻城狮 | 来源:发表于2017-04-14 15:59 被阅读14次

1、点语法及其好处

1、方便程序员能够很快的转到O-C上来

2、让程序设计简单化

3、隐藏了内存管理细节

4、隐藏了多线程、同步、加锁细 节

5、点语法的使用

Dog *dog=[[Dog aloc] init];

[dog setAge:100];

int dogAge=[dog age];

NSLog(@"Dog Age is %d",dogAge);

下面的代码用点语法

dog.age=200;//调用setAge方法

dogAge=dog.age;//调用age方法

这里的点不上调用的dog这个对象的字段,而且在调用方法。dog.age是在调用setAge这个方法,下面的dog.age 是在调用age这个方法。

点语法是编译器级别

编译器会把dog.age=200;展开成[dog setAge:200];

会把dogAge=dog.age;展开成[dog age];函数调用

6、点语法setter和getter规范

setter函数展开规范

dog.age=200;

[dog setAge:200];

getter函数展开规范

int dogAge=dog.age;

int dogAge=[dog age];

项目当中如果想用点语法,必须在项目中的.h文件和.m文件中声明和实现setAge和age方法,也就是说要声明和实现getter和setter方法。

2、@property @synthesize如何使用

@property是让编译器自动产生函数申明

不再写下面2行代码

-(void) setAge:(int)newAge;

-(void) age;

只需要下列一行就可以代替

@property int age;

@synthesize 意思是合成

@synthesize就是编译器自动实现getter和setter函数

不用写下列代码

- (void) setAge:(int)newAge

{

age=newAge;

}

-(int) age

{

return age;

}

只需要些

@synthesize age;

3、@property @synthesize编译器如何展开

@property @synthesize只能展开成标准的模板,如果想在getter和setter函数中增加内容,则不能用@synthesize表示方法。

4、如何使用点语法

self.age放在=号的左边和右边是不一样的,放在左边是表示调用setter函数,放在右边表示调用getter函数。

为了区别开age,我们会对dog类做一些改动

@interface Dog:NSObject

{

int _age;//改动了以前是int age;

}

@property int age;

@end;

#import "Dog.h"

@implementation Dog

@synthesize age=_age;

@end

5、@property其他属性

readwrite(缺省),readonly

表示属性是可读写的,也就是说可以使用getter和setter,而readonly只能使用getter

assign(缺省),retain,copy

表示属性如何存储

nonatomic

表示不用考虑线程安全问题

getter=......,setter=......

重新设置getter函数和setter函数名

这个项目的代码如下;

dog.h文件代码

dog.m文件代码

main.m文件代码

下图为今年部分iOS开发的视频教程,因为不定时更新中故不做多的截图,如果有iOS开发上的问题不懂或者需要视频教程可以看我的个人简介。

不定时更新中。

相关文章

  • Objective-C----内存管理--点语法

    1、点语法及其好处 1、方便程序员能够很快的转到O-C上来 2、让程序设计简单化 3、隐藏了内存管理细节 4、隐藏...

  • .点语法和_下划线

    点语法 点语法是对属性的访问,经过oc消息派发,可以完成属性所定义的“内存管理语义”, 包含set和get...

  • 内存管理(MRC、ARC)

    本文用来对 Objective-C 语法中,内存管理(MRC、ARC)相关知识进行讲解。 一、 什么是内存管理 程...

  • JS性能优化

    内存管理 内存为什么要管理?以下代码在语法层面没有什么问题,但是会发生内存泄露 内存:由可读写单元组成,表示一片可...

  • Swift语法 Swift5 【01 - 基础语法】

    作者: Liwx 邮箱: 1032282633@qq.com iOS Swift 语法 底层原理 与 内存管理分析...

  • Swift语法 Swift5 【05 - 可选项】

    作者: Liwx 邮箱: 1032282633@qq.com iOS Swift 语法 底层原理 与 内存管理分析...

  • iOS课程笔记大全(1)

    (复习) 内存管理:手动内存管理\ARC,内存管理是面试必问的知识点2.Category、Protocol、Blo...

  • iOS内存管理语法考察

    请问下面的代码打印结果是什么? 答案是打印Equal ==这个符号判断的不是这两个值是否相等,而是这两个指针是否指...

  • OC语法_IOS内存管理

    目录: 1、内存的定义 2、内存管理的基础概念 3、IOS系统中的内存管理 1、内存的定义 1.1. 内存是计算...

  • Swift语法 -- [20 - 内存管理]

    跟OC一样,Swift也是采取基于引用计数的ARC内存管理方案(针对堆空间) Swift的ARC中有3种引用 强引...

网友评论

    本文标题:Objective-C----内存管理--点语法

    本文链接:https://www.haomeiwen.com/subject/fmowattx.html