Property Declaration Attributes

题目不知道应该怎么翻译?硬是要翻译,只能是属性声明的特性。
 
对于这部分内容,《The Object C 2.0 Programming Language》的介绍是:
 
You can decorate a property with attributes by using the form @property(attribute[,attribute2,
...]). Like methods,properties are scoped to their enclosing interface declaration.For property
declarations that use a comma delimited list of variable names,the property attributes apply to all
of the named properties.If you use garbage collection,you can use the storage modifiers __weak and
__strong in a property’s declaration,but they are not a formal part of the list of attributes.
 
翻译一下:你可以通过以下格式去用attributes 修饰property :
 
@property(attribute[,attribute2,...])
就像方法一样,property的作用域限于它们自己封闭的接口声明中。尽管property的声明是使用了的attributes是被逗号分割的,但这些property attributes 的每一个都对property本身起作用。如果你使用GC,你可以在property的生命中使用weak和stronge这两个存储修饰符,但他们并不属于attributes的一部分。
 
接下来,介绍每一种attribute:
 
  • getter=getterName,setter=setterName:
   getter=和setter=修饰符用于指定property的get和set访问器(方法)。getter方法必须返回一个与property的类型匹配的值并且不需要带任何的参数访问该方法。setter方法必须带唯一的一个类型与property一致的参数并且返回值为void;
 
  • readOnly:
   声明property是readOnly的,默认为read/write。
也就是说在@implementation中,只有getter方法是需要的,或者,当使用@synthesized时,只会存在getter方法,而没有setter;
 
  • read/write:
   不解释。。。。
 
  • assign:
   指定setter方法只使用简单的赋值,这是默认的。
   如果你的应用使用GC时,如果你希望在遵守NSCopying协议的class中的property上使用assign时,你应该显式指明这个attribute,而不是希望系统默认使用它,否则的话,编译器会有警告。
 
  • retain:
   说明该对象的赋值时,对象需要保留(retain,也就是引用计数增加一次)(默认是assign)。
   这个attribute仅限于Object-C对象类型,不能对Core Foundation中的对象使用。
 
  • copy:
   说明赋值是赋给对象的拷贝。这个attribute仅使用于遵守NSCopying协议的对象类型上。
 
  • nonatomic
   指明访问器是非原子性的。默认是原子性的。
   默认的合成访问器(@synthesized修饰后产生的getter和setter方法)在多线程环境下是提供健壮的属性(property)访问的。这也就是说,getter和setter方法每一次都是“完整”的取值或赋值,不管有没有其他的线程在同时进行对该值的操作。
   如果没有使用nonatomic去修饰property,那么生成的getter会在每一次执行时都会retain一下对象,然后再autorelease,如果声明了的话,那么就直接get就ok了,这就避免了额外的开销。
 
#注意,如果不实用GC,在用assign、copy和retain时必须显示声明,不然会有警告。
 
 
【轴承故障诊断】基于融合鱼鹰和柯西变异的麻雀优化算法OCSSA-VMD-CNN-BILSTM轴承诊断研究【西储大学数据】(Matlab代码实现)内容概要:本文提出了一种基于融合鱼鹰和柯西变异的麻雀优化算法(OCSSA)优化变分模态分解(VMD)参数,并结合卷积神经网络(CNN)与双向长短期记忆网络(BiLSTM)的轴承故障诊断模型。该方法利用西储大学公开的轴承数据集进行验证,通过OCSSA算法优化VMD的分解层数K和惩罚因子α,有效提升信号分解精度,抑制模态混叠;随后利用CNN提取故障特征的空间信息,BiLSTM捕捉时间序列的动态特征,最终实现高精度的轴承故障分类。整个诊断流程充分结合了信号预处理、智能优化与深度学习的优势,显著提升了复杂工况下轴承故障诊断的准确性与鲁棒性。; 适合人群:具备一定信号处理、机器学习及MATLAB编程基础的研究生、科研人员及从事工业设备故障诊断的工程技术人员。; 使用场景及目标:①应用于旋转机械设备的智能运维与故障预警系统;②为轴承等关键部件的早期故障识别提供高精度诊断方案;③推动智能优化算法与深度学习在工业信号处理领域的融合研究。; 阅读建议:建议读者结合MATLAB代码实现,深入理解OCSSA优化机制、VMD参数选择策略以及CNN-BiLSTM网络结构的设计逻辑,通过复现实验掌握完整诊断流程,并可进一步尝试迁移至其他设备的故障诊断任务中进行验证与优化。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值