首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

任何人都可以根据Apple Objective-C文档的摘录解释选择器吗?

任何人都可以根据Apple Objective-C文档的摘录解释选择器吗?

选择器(Selector)是Objective-C编程语言中的一个重要概念,它是一种用于识别对象方法的标识符。选择器通常由方法名和参数类型组成,并以冒号(:)分隔。选择器在Objective-C中的主要作用是实现消息传递和动态调用。

根据Apple的官方文档,选择器的语法如下:

代码语言:txt
复制
selector-name ::= identifier | keyword-selector
keyword-selector ::= keyword-declaration* (selector-name | keyword-declaration)
keyword-declaration ::= '@' identifier ':'

选择器的命名规则与变量名相同,但是不能以数字开头。此外,选择器还可以包含关键字,这些关键字以@符号开头,后面跟着一个标识符和一个冒号。关键字选择器可以用于区分具有相同方法名但参数类型不同的方法。

选择器在Objective-C中的应用场景非常广泛,例如在方法调用、通知中心、代理等场景中都会用到选择器。

推荐的腾讯云相关产品:

  • 腾讯云对象存储(COS):一种分布式存储服务,提供高可靠、低成本的云存储服务,适用于各种规模的企业和开发者。
  • 腾讯云API网关:一种帮助用户管理API的服务,支持创建、发布、维护和下线API,同时提供安全、轻量级、高性能的API管理能力。
  • 腾讯云云巢:一种容器解决方案,提供快速构建、部署和管理容器的能力,支持一键部署、扩容、降级等操作。

产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

汇编寄存器规则

判断是否有参数一种简单方法是简单地检查 Objective-C 选择器冒号。 每个冒号将代表一个方法中参数。...Objective-C 选择器基本上只是一个 char *。 这意味着,像所有 C 类型一样,LLDB 不知道如何格式化此数据。 因此,您必须将此引用显式转换为所需数据类型。...您只需创建一个断点就可以轻松调试,从寄存器中获取引用并根据需要操纵该对象实例。 您现在将尝试将主窗口更改为红色。”...如果知道了一个内存地址,你应该显示地强转为你想要类型。不然 Swift 调试器没有任何线索去解释内存地址。 话虽这么说,但是 Swift 使用了相同寄存器调用规则。 但是有一个非常重要区别。...在 Objective-C 中,RDI 寄存器是调用 NSObject 引用,RSI 是选择器,RDX 是第一个参数,依此类推。

2.5K50
  • Swift学习资源

    Swift 是一种强劲而直观编程语言,它由 Apple 创造,可用来为 iOS、Mac、Apple TV 和 Apple Watch 开发 app。它旨在为开发者提供充分自由。...Swift 易用并且开源,只要有想法,谁都可以创造非凡。 Swift is a high-performance system programming language....Swift在iOS 8发布时候推向市场,用来取代 Objective-C 语言。 对于这个巨大决定,苹果公司解释是Swift速度更快,使用起来更加容易。...在Swift推出之后,苹果公司应该不会停止对 Objective-C 支持,开发工具会同时支持两种语言。 在 Swift 开源后,开发者社区活跃。...课堂》 免费Swift学习视频 《Apple Swift语言基础教程》极客学院 官方示例 Apple同时发布了3个示例程序,用于初窥Swift开发项目。

    2.4K80

    闲谈 iOS 动态化

    JSPatch 接入成本非常低,对项目的影响也非常小,不需要引入额外脚本解释器(因为已经有 JSCore 了),并且 JS 写起来真的比 Lua 要爽很多。...但是这个定义其实是非常非常含糊,我认为这不是一个可以明确执行定义。 什么叫脚本?什么叫程序? 什么样程度叫做改变了应用本身意图? 游戏加载脚本是业界通行做法,Apple 会禁止?...就像飞机上不能携带超过 100ml 水一样,根本原因是因为安检无法低成本分辨是否易燃易爆,所以 Apple 非常广泛发了这样「震慑」邮件。 # 这样有用?...由于 Objective-C 夸张动态性,其实我们很早就知道,Apple 从技术层面比较难完全防止掉这样事情发生。...甚至退一步讲,完全不用任何动态技术,也不用任何私有 API,都可以让应用在审核期间看起来和用户用起来是完全不一样,这种用一个开关来控制小把戏我想大家都心知肚明。

    60620

    【iOS 开发】NSError ** 与 throws 三个问题

    error 再获取这个错误值,来看这个过程中有没有什么错误,那么通过 error == nil 不就可以知道是否执行成功,为什么需要 BOOL 返回值,这是一个冗余设计?...另外,基于 Objective-C 语言特性,这里我们无法阻止调用者对 error 参数传递 nil,但是这个方法在这种情况下依然需要告知调用者是否执行成功,所以返回值是一个必要设计。...上面那个方法在 Swift 中是这样: func removeItem(atPath path: String) throws 没有返回值 Objective-C 中为了对外部创建 NSError...antitypical/Result,而如果你一定要使用原生 API,记得看一眼文档吧,到底 return value、error、responseData 中哪个值可以保证你操作是成功。.../ErrorHandling.html#//apple_ref/doc/uid/TP40014097-CH42 https://developer.apple.com/library/content/documentation

    1.9K20

    Swift 是猴还是猿?

    前言 Swift和Objective-C是目前开发 Apple App两门主要语言。Swift自2014年发布到目前为止其行业现状如何?...Swift集成了很多高级语言优秀特性,借鉴了很多高级语言优秀语法,开发角度写法类似JavaScript等脚本语言,但是本身又属编译性质语言,是一门真正编译语言,而非解释型。.../返回值,则参数/返回值/in 统统都可以省略 范型 范型应用场景: swapTwoInts(::)、swapTwoStrings(::) 和 swapTwoDoubles(::) 函数功能都是相同...其它改动这里不再详述,请参阅苹果官方文档。 七、Swift的当前缺陷 Swift所面临问题,也即到目前为止大多数程序员吐槽和诟病关于动态特性(或叫“反射特性”,类似Java中反射)。...八、给开发者建议 依据前面“四”对比,Swift和Objective-C相比在字符串处理方面优势明显,其它方面和OC差不多,实际项目中可以根据项目性质合理选择两者之一做为开发语言,甚至不同情境下应用各自语言各自优势

    3.9K30

    iOS 开发面试通关指南:67 个必知问题!

    作为一名面试者,你必须好好准备,以展现出自己最好一面,而想要在一场1小时左右谈话中做到这一点是很困难。作为开发人员,我们通常不情愿去用心学习文档,甚至很多简单东西还需要临时去Google搜索。...这是一种面向协议编程类型安全语言。然后对方可能会追问一些后续问题,可能会让你进一步解释“面向协议”含义等等。 var和let有什么区别?你会在struct中选择哪个作为property?为什么?...这是个简单问题。但你还记得哪个是默认选项? 20.(如果求职者会Objective-C):Swift和Objective-C有什么区别?你分别喜欢这两种语言什么特性?...简要说明你以前是如何做/将要如何做?你只需根据你自己经验来解释即可。 32.你是否使用过Alamofire,或其他任何网络框架?有些人用网络框架,有些人不用。你平时用不用?...你是否有使用Rx框架和/或Apple’s Combine经验?Apple也采用这种方式,所以如果你还没有尝试过,那么现在正是去了解一些基础知识好时机。 67.你为什么要离开原先工作?

    1.2K20

    runtime那些事(四)—— selector、IMP、Method

    &emsp关于 selector 用法,其返回类型为 SEL。关于 SEL 定义,最权威还是在官方文档解释。...SEL官方文档链接  关于官方文档对于 SEL 声明,翻译过来大意如下:selector 方法选择器用于在运行时表示方法名称,一个 selector 选择器其实就是已经向运行时注册或者映射过C字符串...但是在使用 selector 选择器时,必须使用函数 sel_registerName 或者 Objective-C 编译器指令 @selector() 返回值,而不能直接将 C字符串强制转换成 SEL...() 通过官方文档对 NSSelectorFromString 解释,将一个方法名UTF-8编码字符串传给 sel_registerName 函数并返回 SEL;关于 method_getName(...若存在相同 SEL 方法名,根据 BOOL 类型变量 replace 判断,若为 NO,则从已有的 Method 中取出 IMP 并返回;若为 YES则会将新 IMP 与 对应 SEL 方法名进行映射绑定

    2.1K20

    音频开发中常见四个错误

    还记得上图中其他黄色线程?...如果仅使用Obj-C / Swift渲染音频那么这会非常方便——无论是传递对象还是继承等都可以实现,除此之外许多第三方音频库也可以做到这一点,那么问题出在哪里?...实际上,我们甚至不能允许ARC保留Objective-C或Swift对象,因为该保留机制也持有一个锁(可参阅:[sidetable_retain](https://opensource.apple.com...它不会捕获所有内容,也不会捕获Apple自己系统代码中任何内容,但是它将捕获一些在您代码以及您正在使用任何静态库代码中锁、内存分配、所有正在被使用Objective-C活动(但不包括Swift...因此,我们所能做是进行有根据猜测,并在理想情况下进行测试和实验,尽管这可能很困难但在技术上可行。

    1.1K40

    iOS开发常用之测试调试、动态更新

    CleanroomLogger - 相当于CocoaLumberjack或Log4jSwift版本,功能上甚至更强大。另外,源代码中已经内含了完整API文档,使用非常方便。...kiwi-bdd - TDD或BDD,objective-c语言测试框架,最流行BDD测试框架了,Kiwi最受欢迎(根据github上star数来推断,行为描述和期望写起来也比较易懂,至少我是这么认为...======== 动态更新 waxPatch - 大众点评屠毅敏同学在基础蜡基础上写了waxPatch,这个工具主要原理是通过lua来针对objc方法进行替换,由于lua本身是解释型语言,可以通过动态下载得到...KYVoiceCurve - 类似Apple Watch中语音声音曲线动画。...该项目使用类似Apple Watch表格,而不是将数据结构扁平化成为数组。 Apple Watch开发教程资料汇总 - Apple Watch开发教程资料汇总。

    3.5K20

    关于Android Auto:你需要知道全都在这了!

    在任何地方,真的 好消息是我们有比以往更多选择。车载和蓝牙都可以AppleCarPlay并不太糟糕。 但Android Auto是所有信息娱乐系统应该努力方向。它易于使用。看起来很好。...很多,随着更多添加。(不过谷歌表示超过400款。)先锋,建伍,索尼等产品售后市场选择让几乎任何人都可以获得完整Android Auto体验。 但是有一些坚持。宝马?算了吧。奔驰?只有你很幸运。...你主屏幕。音频。这是您在应用程序之间切换地方,如果您在给定类别中有多个应用程序选择器,则打开应用程序选择器。(你可能会这样做。) 主屏幕可根据Google帐户信息进行自定义。天气出现在这里。...它就是这样做。 我们问Google所有随机问题也是如此。太阳落山几点了?乔治克鲁尼上过多少部电影?狗和蜜蜂闻到了恐惧?...需要有一个选项来隐藏应用程序选择器应用程序。我娱乐应用程序选择器中有六个应用程序。但我只听两个 - 当我在两者之间切换时,其中一个要求我向下滚动几次。

    11.2K60

    类与对象

    Objective-C Runtime Reference(https://developer.apple.com/documentation/objectivec/objective_c_runtime...language=objc)中,有对Runtime函数使用细节文档。...当我们向一个类实例发送消息时,Runtime会根据实例对象isa找到这个实例对象所属类,然后再在这个类方法列表和其父类方法列表中查找与消息相对应selector指向方法,进而执行目标方法。...; 使用上述函数时,需要特别的注意一下细节信息和使用规范,具体可以查阅 Objective-C Runtime Reference(https://developer.apple.com/reference...Cat时,创建出Class地址始终指向0x0,创建类失败,猜测其中原因可能是Cat与内部关键字冲突了,导致类创建失败,改为cat或者其他都可以创建成功; 在上面的代码中,在运行时动态创建了Animal

    91430

    iOS开发入门笔记

    在本文档末尾,还有一些其它网址可以下载开源iOS产品或者代码段,但我试了一下,还是Apple Sample Code最容易成功。...这篇文档不讲IB,只讲Objective-C,因为: 基本上,每一本讲iOS开发书(纸质书、电子书),都有大量截图一步一步教如何用IB开发iOS应用,而讲Objective-C开发应用书却没有那么多...官方并没有提到Objective-C怎么实现私有方法,我查阅了stackoverflow,统一答案是,要实现私有方法效果只能借助Category,不过,根据测试,即使采用了Category,也不能阻止外部代码调用这个...> 不嫌烦,或者想知道下次没我这个文档时候怎么进证书管理?...教程 Apple官方教程 Cocoa Dev Center 维基上Objective-C语言简介 –中文,十分钟可读完,推荐

    3.9K60

    Sketch 插件开发官方文档合集插件基础您第一个插件开发环境调试ActionAPI发布插件插件捆绑插件,脚本和命令插件位置更多关于CocoaScriptSketchTool参考资源

    例如: 根据复杂规则选择文档图层 操作图层属性 创建新图层 以所有支持格式导出资产 与用户交互(要求输入,显示输出) 从外部文件和Web服务获取数据 与剪贴板交互 操作Sketch环境(编辑指南...原文:https://developer.sketchapp.com/guides/ 您第一个插件 ---- 本文档将带您创建您第一个Sketch插件(“Hello World”),并将解释Sketch...本文档解释了如何在那里发布它以及如何让Sketch接收插件更新。...将选择器名称转换为JavaScript属性名称时采取以下步骤: 所有冒号都转换为下划线(最新下划线是可选)。 选择器每个组件都连接成一个没有分隔字符串。...一些特定全局变量 指针 对于某些Obj-C选择器,您可能需要传递一个指针。

    6.3K90

    逆向工程分析:iMessage如何利用硬件来保护软件

    因此,我编写了一个简单Objective-C消息拦截器-【objtree】,它可以记录我感兴趣消息相关所有信息。工具输出以树状图形式提供。...下面的例子中,objtree导出了超过3000个触发keyDown事件选择器: sudo objtree Messages -m "-[NSResponder keyDown:]" 其次,在找到最重要...多亏了Objective-C消息调度系统,我们们可以通过搜索具有connectTo和send等名称选择器快速了解TCP连接API调用发生位置。...跟APN通信 既然我们已经拿到了通信连接和通信数据,那我们能通过APN进行通信?我们一起来尝试一下!...根据apsd中发生情况,这是发送iMessage最小命令序列: 0x07: 使用uid 0与用户建立连接(每个用户都有其自己公共push令牌) 0x0c: 保持连接活动 0x14: 激活通信状态

    2.9K20
    领券