博客
关于我
属性声明方式@interface与@property 的不同
阅读量:583 次
发布时间:2019-03-11

本文共 504 字,大约阅读时间需要 1 分钟。

当初提到Objective-C属性声明方式时,常会遇见不同编写风格,容易让人感到困惑。以下是两种常见方式的对比分析:

方式一:直接在@interface中声明

此方法直接在扩展符中添加属性声明,即:

@interface MyTest : NSObject {    NSString *mystr;}

优点:直观清晰,直接定义属性,适合简单场景。缺点:属性只能在类内部使用,无法通过点方法访问,类外无法引用。

方式二:使用@property

这是一种更现代的方式,代码结构如下:

@interface MyTest : NSObject {}@property (strong, nonatomic) NSString *mystr;

随后在.m文件中添加synthesize:

@implementation MyTest@synthesize mystr = _myStr;

优点:支持动态属性管理,方便继类及其他行为定义。缺点:增加了更多的代码依赖,需要 понdersite属性声明。

详细对比可看出,@synthesize方式更适合复杂属性管理,而@property则更灵活支持多种动态行为特性。

转载地址:http://whttz.baihongyu.com/

你可能感兴趣的文章
JavaSE总结
查看>>
手动造轮子——基于.NetCore的RPC框架DotNetCoreRpc
查看>>
Python IO编程
查看>>
CSS入门总结
查看>>
使用 TortoiseGit 时,报 Access denied 错误
查看>>
基于 HTML5 WebGL 的污水处理厂泵站自控系统
查看>>
[系列] Go gRPC 调试工具
查看>>
django-表单之模型表单渲染(六)
查看>>
c++之程序流程控制
查看>>
yarn出现“There are no scenarios ; must have at least one"
查看>>
spring-boot-2.0.3之redis缓存实现,不是你想的那样哦!
查看>>
httprunner学习23-加解密
查看>>
有道云笔记 同步到我的博客园
查看>>
李笑来必读书籍整理
查看>>
http头部 Expect
查看>>
Hadoop(十六)之使用Combiner优化MapReduce
查看>>
《机器学习Python实现_10_06_集成学习_boosting_gbdt分类实现》
查看>>
CoreCLR源码探索(八) JIT的工作原理(详解篇)
查看>>
IOS开发Swift笔记16-错误处理
查看>>
flume使用中的一些常见错误解决办法 (地址已经使用)
查看>>