属性以及它的特性

关于蓝牙协议中GATT、特性、属性解释 在蓝牙的学习中,一上来就要面对一大堆的专业名词。首先就是服务是什么?特性是什么?属性是什么?刚开始的时候查了很多资料都还是没有搞懂。这次就结合代码,尽量用最通俗易懂的方式将这些东西解释并记录下来,也希望能帮助到别人。(如果有不对的,也希望有大神能指出来) 通用属性配置文件(Generic Attribute Profile)GATT GATT主要定义了。服务器server和客户端client。而其他的服务、特性、属性都是在这个协议下的各种角色。他们的关系如下: 属性(Attribute) . 阅读详情

属性以及它的特性

1.属性的赋值与取值

书上面的解释就是使用点运算符来访问属性,可以操作属性来进行赋值与取值。按照字面意思来理解,你可能觉得只是使用点运算符来简单的操作定义属性时生成的实例变量,实则不然。按照书上讲的,点运算符操作属性的同时,也具有调用方法的功能。按照这样理解,点运算符的右侧跟什么方法名,就调用的是哪个方法。但细心的人会发现,之前我们经常用的一个例子违反了这一个规则。这个例子出现在属性这部分之前,它首先定义了一个实例变量,再给这个实例变量设置一个存取方法(如实例变量origin,再分别定义两个方法:origin和setOrigin),书上说这个例子等价于你直接定义一个origin属性。那么,接下来,我们观察,按照之前的规则,如果我们使用点运算符右边跟一个origin,那么会有两个问题产生:第一,我们到底调用的是origin变量还是origin方法呢;第二,如果调用的时origin方法,而origin方法是一个取值方法,也就是说我们只能将它返回的值赋给其他的同类型变量,可是我们在书上却见到将其他的值赋给它。思考这两个问题,假如是调用变量,那么那两个方法该如何解释呢?因此可以确定,点运算符调用的是方法。那么问题又来了,如果是调用方法的话,那么为什么将一个取值方法作为一个赋值运算符的左侧对象来使用呢?说道这里,你可能会想到,这不正是设置方法的功能吗?答案是肯定的。如果点运算符后面跟origin,如果对它赋值,实际上调用的是setOrigin方法。

2.特性

oc中的属性特征主要有assign,copy,retain这三个主要的,还有readonly,readwrite.   另外,atomic和nonatomic;以及strong,weak。
 assign主要是针对基础类型数据和c数据类型的简单赋值,而且它不调用索引计数器(retain count)。
 retain主要是指调用oc中的对象,对oc中的对象进行赋值(主要针对NSObject及其子类),需要调用索引计数器(retain count)进行+1操作,开辟新的内存空间,在赋予新值之后便进行release操作。
 copy是指使用对象的副本,索引计数器的计数依旧保持为1,它只是为对象创建了一个新的指针,指向内存相应位置的对象,并没有开辟新的内存空间(此时的复制为浅复制)。
readonly是只生成getter方法,而不生成setter方法,就是只读存储。
readwrite是默认属性,将生成不带额外参数的getter和setter方法。
assign是一种原子访问,如果有多个线程调用setter方法的话,不会出现在一个线程调用setter没有完成之前,另一个线程开始调用setter这个方法,可以讲该属性锁定。
nonassign是非原子访问,不加同步和多线程,不进行锁定,当出现多线程的时候,会出现问题,但是这样相对提高了性能。

最后

特性不能用于有参数的setter和getter方法,假如要有参数的setter和getter方法的话,则必须重写setter和getter方法如:

  • (void) setTest: (Tire *) tire atIndex: (int) index;

  • (Tire *) tireAtIndex: (int) index;

_郭挺

蓝牙:GATT,属性,特性,服务 通用属性配置文件(Generic Attribute Profile)介绍 阅读详情

相关推荐

微信DAT图片解密全攻略:一键转换JPG/PNG/GIF

本文详细解析了微信电脑版中DAT图片的加密原理与存储路径,并提供了从定位文件到使用专业工具进行一键解密的完整操作指南。通过简单的步骤,用户可将加密的DAT文件无损还原为JPG、PNG或GIF格式,有效解决无法直接查看聊天图片的难题,同时兼顾了隐私清理与磁盘空间管理。

hill8的博客 1366

属性的特性

对象属性是由名字、值和一组特性(attribute)构成。 在javaSctipr中,属性的值可以用一个或两个方法代替,分别是getter和setter,除了这两个方法之外,属性还包含一些标识他们可写,可枚举和可配置的的特性。

weixin_56117559的博客 1096

Windows11上CUDA 12.3配PyTorch踩坑记:一条官网命令救了我的GPU加速

本文详细介绍了在Windows 11上配置CUDA 12.3与PyTorch的完整指南,包括环境准备、安装要点、兼容性解决方案和性能验证。通过官方推荐的conda命令和实用技巧,帮助开发者解决常见问题,实现高效的GPU加速,提升深度学习开发效率。

weixin_42528974的博客 109

理解对象(一):属性类型及其特性

属性类型ECMAScript有两种属性:1.数据属性:数据属性包含一个数据的位置,在这个位置可以读取和写入值。2.访问器属性访问器属性不包含数据值:它们包含一对getter和setter函数(不过这两个函数都不是必须的),在读取访问器属性时,会调用getter函数,这个函数负责返回有效的值;在写入访问器属性时,会调用setter函数并传入新值,这个函数负责决定如何处理数据。 对象属性是由名字,值和

hhthwx的博客 1444

Dynamics 365 F&O新手必看:Visual Studio 2019搭建项目框架全流程(含Model避坑指南)

本文详细介绍了如何在Visual Studio 2019中为Dynamics 365 Finance and Operations搭建企业级项目框架,包括Model分层策略、Solution管理及开发工作流优化。特别提供了Model避坑指南和实用配置建议,帮助新手快速上手并避免常见错误。

weixin_30505225的博客 381

南京工业大学高性能计算平台基础使用指南

高性能计算平台基础使用指南前言什么高性能计算南京工业大学高性能计算平台如何登录如何进行文件传输进行任务提交(本文以提交MATLAB任务为例)环境变量的配置(推荐)使用Environment Modules进行环境变量管理Modules 指令自定义MODULEFILE常见软件任务脚本 前言 第一次接触使用学校的高性能平台是在今年上半年进行毕业设计的时候,当时有大量的数据需要在Matab中进行模型运算,便向学校申请了账号,使用了HPC平台。计算速度确实比个人电脑快了太多太多。 近期,有很多初次想使用高性能计算

weixin_45710019的博客 6878

js中对象属性的类型和属性的特性(属性描述符)

ES5中对象的属性可以分为数据属性和访问器属性 数据属性 数据属性包含以下4个特性: [[configurable]]:表示属性是否可以被delete,是否可以被重新修改,或者是否可以被修改成访问器属性 [[enumerable]]:是否可枚举,是否能通过for in 循环返回该属性 [[writable]]: 是否可修改 [[value]]:属性的数据值,默认是undefined 数据属性可以...

卡卡的笔录 3427

Python | KS检验以及其余非参数检验的实现

Python | KS检验以及其余非参数检验的实现1 什么是KS检验2 KS检验分类?3 KS检验的Python实现3.1 检验指定的数列是否服从正态分布3.2 检验指定的两个数列是否服从相同分布4 其余的非参数检验4.1 Wilcoxon符号秩检验(t检验的非参数版本)4.2 Kruskal-Wallis H检验(方差分析的非参数版本)4.3 Mann-Whitney秩检验5 参考 1 什么是KS检验 定义:检验一个分布f(x)与理论分布g(x)【比如正态分布】是否一致,或两个观测值分布是否有显著差异的检

RUC_Lee的博客 1万+

关于特性(Attributes)的一点个人理解

  特性(Attributes)感觉就象是一个帽子,它的使用和被它标注的元素(可以是类,方法或者字段)没有很大的关系,主要功能似乎只是用来描述被标注的元素.   举例解释的话可能会有一点好,但是,不知道是否贴切:一个Class或者是Function在创作后需要知道编写它的作者的一些信息,比如名字,年龄,擅长,或者联系电话什么的,但是,这些东西无法在Class里面写入,因此,可以用特性来帮忙. ...

weixin_30340745的博客 269

FC游戏Hack实战:从零开始修改游戏数据

本文以《忍者神龟3》为例,详细介绍了从零开始进行FC游戏Hack的完整实战流程。通过使用FCEUX模拟器和调试器,结合“递减法”精准定位生命值内存地址,并利用十六进制编辑器修改关键指令,最终实现“无限生命”效果。文章旨在引导读者理解游戏数据修改的核心原理与操作技巧,重温经典的同时深入计算机程序运行机制。

weixin_28366353的博客 358

AI挖矿技术全景解析:从智能勘探到自主开采的2025年度技术演进与产业变革

随着全球关键矿产资源需求激增与开采难度加剧,人工智能(AI)技术正在重塑矿业全生命周期。本文系统综述了2025年AI挖矿技术的最新进展,涵盖从地质勘探、资源评估到自主开采、安全监控的完整技术链条。基于Elsevier 2025年发表的最新研究成果及IEEE会议前沿动态,本文深入分析了深度学习、强化学习、计算机视觉等核心技术在矿物识别、品位预测、设备维护等场景的应用机制。研究数据显示,AI技术已使勘探成功率提升45%,设备停机时间减少35%,整体运营效率提高40%以上。

nmdbbzcl的博客 2083

关于Eclipse3.3中内容助手不是Alt+/的问题解答,以及它的一些其他新特性

eclipse3.3中把内容助手(content assist)的快捷键由 alt + / 改成了ctrl + space,这又刚好跟我们操作系统的切换输入法的快捷键冲突,所以造成内容助手不能使用了,给写代码带来了极大的不便。 而已前eclipse 3.2版本中的 alt + / 快捷键被作为新的单词补全(word competion)功能的快捷键。所以现在想像以前一样使用alt + /

漠海林峰 646

【网络安全 | 渗透工具】密码字典生成工具crunch、cupp安装使用教程

Crunch是一个常用的密码破解工具,它可以根据指定的字符集、长度和模式生成各种可能的密码并进行暴力破解。同时,Crunch可以将生成的密码保存到文件中,以便在破解工具中使用。在进行渗透测试时,手动收集密码字典是十分耗时的,利用密码字典生成工具可以大幅缩短时间,提高爆破宽度。

等风来 8424

Matlab中属性特性

目录 属性特性 属性特性的目的 指定属性特性 属性特性表 属性特性 属性特性的目的 在类定义中指定特性使您能够为特定目的自定义属性的行为。通过设置特性来控制属性的特征,例如访问权限、数据存储和可见性。子类不继承超类成员特性。 指定属性特性 在properties关键字的同一行为属性特性赋值: properties (Attribute1 = value1, Attribute2 = value2,...) ... end 例如,对Data属性给予private访...

jk_101的博客 1034

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

属性和特性

提起c#中的属性和特性,对于初学者,常常认为二者存在某种必然的联系。它们一个叫property(属性),一个叫attribute(特性),译成中文后,由于名称很相似,而且MSDN中将二者都翻译为属性,致使很多人将二者视为同一类概念,其实它们之间并没有模糊的概念交叉,我们完全可以分开各自理解,没有必要也没法比较二者的异同点。因此,本文主要讨论属性和特性的概念以及如何使用。 1 属性1

Allen Chen的专栏 2484

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Unity3D Attribute特性(属性特性)

总结版本来源于unity2017;其它版本仅供参考,欢迎补全,有错误请私信me。 RangeAttribute:[Range(最小值,最大值)] //属性面板中,限制最大生命值取值范围(0,100) [Range(0,100)...

卡塔部落-老酋长 4379

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Python 动态属性和特性(使用特性验证属性)

目前,我们只介绍了如何使用 @property 装饰器实现只读特性。本节要创建一个可读写的特性。

钢铁男儿 756

C#中的特性 和 通过反射获取属性上的特性

1.首先了解类 AttributeUsage

持之以恒 1万+

关于对象属性的特性configurable的问题

我们知道,在js中类中(Object)中的属性有4个描述起行为的特性: Configurable:表示能否通过delete删除属性从而重新定义属性; Enumerable:表示能否通过for-in循环返回属性 writable:表示能否修改属性的值 Value:包含这个属性的数据值(个人认为其作用就是赋值) 以上四个属性在不显示调用Object.defineProperty()的时候,前三个默认值...

时清云的博客 2351

python特性和属性_python特性、属性以及私有化

python中特性attribute特性是对象内部的变量对象的状态由它的特性来描述,对象的方法可以改变它的特性可以直接从对象外部访问特性特性示例:class Person:name = 'yoda' # 类中特性def get_name(self): # 通过访问器方法访问特性return self.namedef set_name(self, value)...

weixin_39765290的博客 152

对象属性特性

判断对象中是否有该属性 in运算符的左侧是属性名(字符串或是一个能够返回字符串的表达式),右侧是对象。 如果对象的自有属性或继承属性中包含属性名返回true / flase “assign” in Object 继承原型对象属性​ let porty = {x:0} ​"x" in porty porty中当有x属性的时候返回 true 没有返回 flase 对象.hasOwnPreperty(“属性名称”) 对象的hasOwnProperty()方法用来检测给定的名字是否是对象的

HWSss的博客 481

C#,特性,属性,索引器

NET框架提供了三种预定义特性:Obsolete.NET框架允许船舰自定义特性,由于存储声明性信息,并且可以在运行时被检索,该信息根据设计标准和应用程序的需要可以与任何目标元素相关。创建并且使用自定义特性需要四个步骤:声明自定义特性构建自定义特性在目标程序元素上应用自定义特性特过反射访问特性最后一个步骤包含编写一个简单的程序来读取元数据以便来查找各种符号。一个新的自定义特性应派生自类。// 一个自定义特性 BugFix 被赋给类及其成员​我们声明了一个DeBugInfo的特性。

qq_52485934的博客 866

DOM元素的特性和属性

首先来看一下他们的概念: 特性(Attribute):是DOM元素在文档中作为html标签拥有的属性; 属性(Property):是DOM元素在js中作为对象拥有的属性; 首先来了解一下DOM的五个标准特性(id、title、lang、dir、class) 对于标准特性来说,Attribute和Property是同步的,是会自动更新的, 对于自定义的特性来说,他们是不同步的(自...

9370

c#特性 同过特性获取类中的属性,获取属性对应的特性值

//获取特性值 string tableName = string.Empty; List<string> listColumnName = new List<string>(); Type objType = typeof(T_In_ReceiptDetail); //取属性上的自定义特性 foreach (PropertyInfo propInfo i...

weixin_43648705的博客 2883

动态属性和特性

动态属性和特性 在Python中,数据的属性和处理数据的方法统称属性(attribute)。其实,方法只是可调用的属性。除了这二者外,我们还可以创建特性(property),在不改变类接口的前提下,使用存取方法(即读值方法和设值方法)修改数据属性。 除了特性,Python还提供丰富的API,用于控制属性的访问权限,以及实现动态属性。使用点号访问属性(obj.attr),Python解释器会调用特殊...

qq_38327772的博客 771
上一篇: 分类、协议
下一篇: oc中几种属性特质:nonatomic,copy,retain等
xiyouiOS
博客等级 码龄11年 4粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值