@property 那些总结

@property的使用 文章目录前言普通示例对属性赋值进行约束@property的使用@property原理 前言 手机QQ有一个根据条件查找陌生人的功能。我初中时挺爱玩儿的,也因此在好友列表里添加了不少女生,相隔十年,我不得不感谢当时做出英明决定的自己,因为现在浏览空间总能看到大量的美女自拍,爽歪歪…… ……咳咳!不扯了,进入正题。 普通示例 既然我们要查找符合条件的陌生人,那当然得先构建一个具有这样条件的人出来,再... 阅读详情

@property中有哪些属性关键字?/ @property 后面可以有哪些修饰符?

属性可以拥有的特质分为四类:

  1. 原子性---nonatomic特质

    在默认情况下,由编译器合成的方法会通过锁定机制确保其原子性(atomicity)。如果属性具备nonatomic特质,则不使用同步锁。请注意,尽管没有名为“atomic”的特质(如果某属性不具备nonatomic特质,那它就是“原子的” ( atomic) ),但是仍然可以在属性特质中写明这一点,编译器不会报错。若是自己定义存取方法,那么就应该遵从与属性特质相符的原子性。

  2. 读/写权限---readwrite(读写)、readonly (只读)

  3. 内存管理语义---assign、strong、 weak、unsafe_unretained、copy
  4. 方法名---getter=<name> 、setter=<name>

    getter=<name>的样式:

      @property (nonatomic, getter=isOn) BOOL on;
    

    ( setter=<name>这种不常用,也不推荐使用。故不在这里给出写法。)

  5. 不常用的:nonnull,null_resettable,nullable
assign: 简单赋值,不更改索引计数(Reference Counting)对基础数据类
copy: 建立一个索引计数为1的对象,然后释放旧对象。对NSString
retain:释放旧的对象,将旧对象的值赋予输入对象,再提高输入对象的索引计数为1 ,对其他NSObject和其子类
weak 和strong的区别:weak和strong不同的是 当一个对象不再有strong类型的指针指向它的时候 它会被释放 ,即使还有weak型指针指向它。一旦最后一个strong型指针离去 ,这个对象将被释放,所有剩余的weak型指针都将被清除。
copy与retain:
copy其实是建立了一个相同的对象,而retain不是.
copy是内容拷贝,retain是指针拷贝.
copy是内容的拷贝 ,对于像NSString,的确是这样,如果拷贝的是 NSArray这时只是copy了指向array中相对应元素的指针.这便是所谓的"浅复制".
atomic是Objc使用的一种线程保护技术,基本上来讲,是防止在写未完成的时候被另外一个线程读取,造成数据错误。而这种机制是耗费系统资源的,所以在iPhone这种小型设备上,如果没有使用多线程间的通讯编程,那么nonatomic是一个非常好的选择。


__block和__weak修饰符的区别:

__block不管是ARC还是MRC模式下都可以使用,可以修饰对象,还可以修饰基本数据类型。
__weak只能在ARC模式下使用,也只能修饰对象(NSString),不能修饰基本数据类型(int)。
__block对象可以在block中被重新赋值,__weak不可以。




QT的温湿度显示系统 大家好,这里是石侃侃的博客,欢迎前来讨论这篇文章介绍的是DHT11在2440上的基于Qt5.6的应用基于单片机系统的温湿度监测系统构成框图如图2-1所示。图2-1 系统构成框图该系统采用单片机s3c2440作为了本设计的核心元件。利用LCD作为了显示器件,利用触摸屏作为用户界面输入设备,第一行显示当前实时的温度,湿度,第二行依次显示历史时刻最高的温度值,最高的湿度值。第三行是一个文本框,记录了程... 阅读详情

相关推荐

基于JavaEE的银行大客户关系维护系统(JSP+java+springmvc+mysql+MyBatis)

基于JavaEE技术的大型银行客户关系管理系统可以实现客户信息的集中管理、客户需求的分析与挖掘、个性化的服务推荐等功能。+ Maven +mysql5.7或8.0+html+css+js等等组成,B/S模式 + Maven管理等等。用户发送请求:用户通过浏览器或其他客户端向系统发送请求,请求访问特定的页面或执行特定的操作。前端展示结果:前端接收到后端返回的数据,根据需要进行展示。数据返回给前端:后端程序处理完业务逻辑后,将结果数据返回给前端。后端程序接收到请求后,根据请求的类型和参数进行相应的处理。

gp1052的博客 719

Python @property装饰器详解

之前的文章中,我们探究了@后接某个自定义函数的用法,实际上,更常见、完备、简单的应用在于对@和python内置的函数进行结合;这可以避免造轮子的行为。 我们知道, Python 内置了3种函数装饰器,分别是 @staticmethod、@classmethod 和 @property,其中 staticmethod()、classmethod() 和 property() 都是 Python 的内置函数。而本文的目的,是以@property为例,对内置函数的装饰器应用进行探究,以明了其应用范围。 pro

yingxuanzhang的博客 1万+

5060TI显卡深度学习环境搭建:CUDA12.8与CUDNN9.8.0的完美搭配

本文详细介绍了在Win10系统下为5060TI显卡搭建深度学习环境的最佳实践,重点配置CUDA12.8与CUDNN9.8.0的完美组合。通过优化OpenCV编译选项和YOLOv5环境设置,显著提升模型训练和推理效率,帮助开发者充分发挥5060TI显卡的性能潜力。

weixin_29065791的博客 488

Python @property 装饰器讲解

property() 函数 与 @property 装饰器讲解

小皇鱼-的-博客 4704

芯片设计中的setup和hold检查:为什么你的电路会跑飞?

本文深入解析了芯片设计中Setup与Hold检查的核心原理,它们是确保电路可靠运行的“黄金窗口”。通过剖析触发器物理本质、时序路径公式及检查方法,解释了Setup违例(数据太慢)和Hold违例(数据太快)如何导致电路“跑飞”,并提供了从RTL优化到物理实现的实战修复策略与协同优化技巧。

weixin_29268267的博客 476

GD32F303标准库开发:Keil5新建GD32标准库工程

GD32F303标准库开发:Keil5新建GD32标准库工程

MQ0522的博客 8902

@property

@property    @property 关键字的使用  (编译器指令)    必须与@synthsize关键字匹配使用    (代替了set 和 get 方法的声明)    作用:    xcode4.4之前    编译器遇到 @property 的时候,自动增加 实例变量 的get

qq_26765381的专栏 985

内存越界一定会导致程序崩溃吗?详解内存越界

本文详细解释了内存越界不一定导致内存越界的问题,全面介绍了C++内存越界的相关内容。

dvlinker的技术专栏 2万+

Python @property

@property 方法变属性,定义只读属性

tangsiqi130的博客 1294

构建基于知识图谱的金融监管合规系统

金融行业是一个高度监管的领域,金融机构需要遵守众多复杂的法规和政策。传统的金融监管合规方式往往依赖于人工审查和简单的规则引擎,效率低下且容易出错。构建基于知识图谱的金融监管合规系统的目的在于利用知识图谱强大的知识表示和推理能力,实现对金融业务数据的自动化分析和合规检查,提高监管合规的效率和准确性。本系统的范围涵盖了金融机构的各类业务,如银行业务、证券业务、保险业务等。

AI天才研究院 1167

【软考高项论文】论信息系统项目管理的干系人绩效域

例如,在处理与电信运营商合作铺设光纤网络的问题时,考虑到其在通信设施建设和运维方面的专业性和重要性,我们将之定位为高权力高利益的干系人,给予了高度关注和优先沟通。项目全程,我们对干系人绩效域的执行效果进行了定期检查和评估,通过定量与定性的数据收集,确认了项目在干系人管理上的成效,具体表现为:建立了稳固的工作关系网络,使干系人普遍认可项目目标;鉴于本项目牵涉到政府各级部门、企事业单位、市民团体、技术研发伙伴等多种类型的干系人,且干系人的诉求和影响力各异,因此,有序且持续的干系人参与管理显得尤为关键。

Programming Talk 1681

python中@property的作用

Python中的@property是一个装饰器,主要的作用是改变了类中方法的调用方式,具体的就是类实例化后的对象调用类中的方法一般后面需要加上“()”以表明调用的是方法,如果不加括号,说明调用的是类中的属性,但是经过@property修饰器修饰之后的方法,类实例化后的对象调用该方法时后面变不再需要加上小括号了,看起来就像是调用了类中的一个属性一样。因为这个装饰器所修饰方法的作用就是调用类中的属性,而类实例化对象便可以通过该方法间接调用到类中的私有属性,从而做到了更加规范化。...

weixin_44305115的博客 4845

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

python @property

@property 可以将python定义的函数“当做”属性访问,从而提供更加友好访问方式,但是有时候setter/getter也是需要的,我们视具体情况吧  请注意以下代码场景:  代码片段1:  Python2.6代码   clas

elevenqiao的专栏 8576

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

@property的用法

如果在一个类中要设置和获取一个成员变量的话,正常的写法应该是以下这种经典的写法。 class Student(object): __slots__ = ('__name', '__age', '__score') def __init__(self, name, age, score = 0): self.__name = name ...

zzx3163967592的博客 1293

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

@property装饰器

""" @property装饰器 版本: v1.0 日期: 2019.03.26 作者: Catherine python版本: 3.7 """ """ 之前我们讨论过Python中属性和方法访问权限的问题, 虽然我们不建议将属性设置为私有的, 但是如果直接将属性暴露给外界也是有问题的, 比如我们没有办法检查赋给属性的值是否有效. 我们之前的建议是将属性命名以单下划线开头, 通过这种方式来暗示...

尘埃落定 1570

python @property详解,Python @property 详解

类方法转为只读属性重新实现属性的setter, getter, deleter方法类方法转为只读属性class Jhy(object):"""docstring for Jhy"""def __init__(self, a, b):self.a = aself.b = bdef all(self):return ('a: {}, b: {}'.format(self.a, self.b))@pr...

weixin_42535720的博客 230

@property || python

使用 @property 在使用@property之前,让我们先来看一个简单的例子: class Exam(object): def __init__(self, score): self._score = score def get_score(self): return self._score def set_score(s...

VIEO 109

使用@property

Python has a great concept called property which makes the life of an object oriented programmer much simpler. Before defining and going into details of what @property is, let us first build an in...

Ripo_za的博客 250

python - @property属性

总结: 1). Python内置的@property装饰器就是负责把一个方法变成属性调用的; 2). @property本身又创建了另一个装饰器@state.setter,负责把一个 setter方法变成属性赋值,于是,我们就拥有一个可控的属性操作. 3). @property广泛应用在类的定义中,可以让调用者写出简短的代码, 同时保证对参数进行必要的检查,这样,程序运行时就减少了出错的可能性。 ...

淋巴cell学习py之路 833

python中的@property

在python中,@property是一个装饰器,用于将类中的方法转换为属性。通过 @property,你可以将方法的调用方式变为属性访问方式,同时保留方法的内部逻辑,可以使代码更加简洁,易读,并且可以在访问属性时执行一些额外的逻辑。:可以定义一些动态计算的属性,这些属性的值不是直接存储的,而是在访问时计算。可以在不改变接口的情况下,将普通属性改为方法,或者将方法改为普通属性。,你可以将方法的实现细节隐藏起来,只暴露属性的接口。:将方法转换为属性,使方法的调用方式与普通属性相同。:定义属性的设置器方法。

m0_59247951的博客 1234

关于@property的一些小总结

#关于@property的一些小总结1、大家都知道,@property在之前版本中,只是成员变量set方法和get方法的声明,之前老版本需要在.m文件中加上@synthesize才会有成员变量的方法实现,也就是,设置器(set方法)和访问器(get方法),但现在这个版本只要用@property修饰就可以同时生成方法声明和实现的语句,同时生成一个加下划线的属性名。在这里要注意一个问题: 当你用@pr

qq_27687119的博客 646

Python中@Property属性使用

Python中将方法转换为属性,没错就是@property(一起努力,咱们顶峰相见)

精益求精,永无止境,永远在路上! 1722

Python属性使用@property和不使用@property的差别

Python属性使用@property和不使用@property的差别 转载自:https://blog.youkuaiyun.com/u013821237/article/details/84673712 首先看下属性的分类: 1:实例属性: 最好在__init__(self,…)中初始化 内部调用时都需要加上self. 外部调用时用instancename.propertyname 2:类属性: 在__i...

weixin_40893646的博客 330

关于@property

class Exam(object): def __init__(self,score): self._score=score @property def score(self): return self._score @score.setter def score(self,value): ...

weixin_30333885的博客 65
上一篇: iOS 警告收录及科学快速的消除方法---来源董铂然
下一篇: runtime跳转界面以及动态添加属性
kintan哥
博客等级 码龄12年 11粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值