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

Objective-C - 有没有办法"覆盖"点语法?

Objective-C是一种面向对象的编程语言,它支持点语法,即通过点操作符来访问对象的属性和调用对象的方法。在Objective-C中,点语法提供了一种简洁的方式来访问对象的属性,使代码更加易读和简洁。

在Objective-C中,点语法实际上是对属性访问方法的一种简化写法。当我们使用点语法来访问对象的属性时,编译器会自动将其转换为对应的属性访问方法。例如,对于一个名为name的属性,我们可以使用点语法来访问它:

代码语言:objective-c
复制
NSString *myName = myObject.name;

上述代码会被编译器转换为:

代码语言:objective-c
复制
NSString *myName = [myObject name];

同样地,我们也可以使用点语法来设置对象的属性:

代码语言:objective-c
复制
myObject.name = @"John";

上述代码会被编译器转换为:

代码语言:objective-c
复制
[myObject setName:@"John"];

通过点语法,我们可以更加方便地读取和设置对象的属性,使代码更加简洁易懂。

需要注意的是,点语法只适用于属性的访问和设置,而不适用于方法的调用。如果我们需要调用对象的方法,仍然需要使用传统的消息发送语法:

代码语言:objective-c
复制
[myObject doSomething];

总结起来,Objective-C中的点语法提供了一种简洁的方式来访问和设置对象的属性,使代码更加易读和简洁。它实际上是对属性访问方法的一种简化写法。

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

相关·内容

Objective-C笔记

因此本篇文章作为简单学习ObjC的记录,不会涉及太深入的语法特性,简而言之就是——够用就行。 什么是Objective-C Objective-C,简称OC,是一种通用、高级、面向对象的编程语言。...当然也可以使用@public、@private等助记符来覆盖默认行为。 实例化 实例化即创建对象。Objective-C创建对象需通过alloc以及init两个消息。...具备动态类型:即消息可以发送给任何对象实体,无论该对象实体的公开接口中有没有对应的方法。...希望实现转发的对象只需用新的方法覆盖以上方法来定义其转发行为而无需重写响应方法performv::, 因为后者只是单纯的对响应对象发送消息并传递参数。...当然,本文介绍的Objective-C特性只是一小部分,但我们仍然可以先用起来, 等遇到具体语法或者API时候再查阅文档(如spec、tutorialspoint等)即可。

92340

自学Swift之路(零)前言

前言:swift去年我就了解也写过一东西,但并没有做更深入研究,在写这篇文章之前,大家可以先看看这个www.cocoachina.com/swift/20160509/16178.html,内容可以大致看看...但是有一是客观存在的!——Swift生于Objective-C,长于Objective-C,没有Objective-C,没有Cocoa framework,Swift屁都不是!...更何况,现在Objective-C由LLVM Clang开源组织亲自维护,在LLVM Clang 3.7中都加入了NSValue字面量的扩展,更何况Xcode 8又增加了Objective-C的类属性语法特征...我们都不知道几年后会是怎样的一个情况,所以我们都不能对几年后的自己做最理想的打算,我们能做的就是把握现在,现在多掌握一新的知识,才能保证几年后的自己还能经得住摧残。...还有人说我不学Swift,OC是世界上最优雅的语言...好吧,(我有点想笑)我承认OC确实是很优雅的,但Swift有没有搞头这个不是我和你能说了算的,创始人不在不一定就说这门语言没搞头了,你看人Java

1.2K130
  • 如何提高JSON解析的性能

    编写和维护的成本可想而知,那么目前有没有一种通用,而且各个编程语言都能够支持的数据格式呢? 答案是JSON。...比如,PHP的Array既支持名字/值对集合,又支持有序值列表;在Objective-C中,名字/值对集合就是字典,有序值列表就是数组。...JSON的使用场景 JSON的数据结构和任何一门编程语言的语法结构比起来都要简单得多,但它能干的事儿却一也不少,甚至可以完整地描述出一门编程语言的代码逻辑。...JavaScript编程语言的语法书能够使用JSON来描述,其他编程语言也可以,比如Objective-C或Swift,都能够生成自己的语法树结构,转成JSON后能够在运行期被动态地识别。...那么,有没有比原生的NSJSONSerialization解析性能更好的JSON解析方法呢?

    4.7K20

    【IOS开发高级系列】Lua与OC交互专题

    与其他一些基于Lua的移动开发解决方案不同,Wax是个开源框架,只需要你花一时间就可以上手,不需要花钱。不喜欢Wax的工作方式,或者发现实施方面的缺陷?...要是你没看到这个消息,检查之前的步骤,看看有没有步骤漏了。 查看Lua         展开Scripts文件夹,打开AppDelegate.lua。...你可能会先注意到,没有语法高亮。遗憾的是,对于Xcode中的Lua语法高亮问题,我还没有发现稳定的解决方案(是你发现了,请留言告诉我!)。         ...然而,如果你非得将类的当前实例作为每个方法的第一个变量来传送,就会很烦人,于是添加了一些语法上的便利(syntactical sugar)。...不像冒号:操作符(用于对Objective-C类/实例调用方法),.操作符可以针对对象的Lua方面,动态创建成员变量(对象的Objective-C方面对这些变量一无所知)。

    33520

    iOS底层-对象的本质

    苹果官方文档是最正确的学习姿势 The Objective-C language defers as many decisions as it can from compile time and link...Objective-C语言尽可能多地推迟从编译时和链接时到运行时的决策。只要有可能,它就会动态地执行操作。这意味着该语言不仅需要编译器,还需要运行时系统来执行编译后的代码。...运行时系统作为Objective-C语言的一种操作系统;这就是语言的工作原理。 图片.png 首先今天写这篇博客是对学习的记录 那么什么是运行时?什么叫编译时?...(当然只是一般意义上这么说,实际上可能只是翻译成某个中间状态的语言) 那编译时就是简单的作一些翻译工作,比如检查老兄你有没有粗心写错啥关键字了啊.有啥词法分析,语法分析之类的过程.就像个老师检查学生的作文中有没有错别字和病句一样....如果发现啥错误编译器就告诉你.如果你用微软的VS的话,下build.那就开始编译,如果下面有errors或者warning信息,那都是编译器检查出来的.所谓这时的错误就叫编译时错误,这个过程中做的啥类型检查也就叫编译时类型检查

    25220

    Java8 Lambda表达式与Stream API (一):Lambda表达式你要知道的Java8 匿名内部类、函数式接口、lambda表达式与Stream API都在这里

    上面这个例子为了执行info函数定义了一个实现了Programmer接口的类MyProgrammer,如果它只执行一次这样就显得过于复杂,如果采用匿名内部类就会在很大程度上简化编程,首先介绍一下匿名内部类的基础语法...}); list.forEach(System.out::println); } } 结果同上,显而易见,采用了匿名内部类更加的方便了,代码简洁明了,那有没有再简介一办法呢...如果代码体只有一行代码可以省略花括号,如果有返回值也可以省略return关键词,不仅如此,lambda表达式在只有一条代码时还可以引用其他方法或构造器并自动调用,可以省略参数传递,代码更加简洁,引用方法的语法需要使用...第二个sort方法则直接引用了对象的实例方法,语法规则为类::实例方法,系统会自动将函数式接口实现的方法的所有参数中的第一个参数作为调用者,接下来的参数依次传入引用的方法中即自动进行s1.compareTo...接收一个Consumer接口对象,该接口是一个函数式接口,只有一个抽象方法void accept(T t);,因此可以使用lambda表达式进行调用,这里引用System.out的类方法println,引用语法

    99880

    0. 如何判断一门语言的好坏

    Kotlin 语法不习惯;Kotlin 这样强推这么多年,也不温不火,说明 Kotlin 不行。...但劳动人民的智慧是无穷的,程序员们想出各种办法来降低自己犯错概率。从机器码到汇编,到面向流程,到面向对象,到设计模式,编码规范,高级语法特性,不断有新编程技术的出现,让程序员们可以写更简单的代码。...快速实现了一个算法并开始验证的时候,别人可能还在用 C++ 吭哧吭哧地写着 std::vector 的 for 循环;当你用 Swift 快速实现了一个 iOS demo 的时候, 别人可能还在用 objective-C...我们判断一个东西好不好,有没有价值,有没有必要去投入,不要用“习惯”。要把好与不好列出来。...就像我这样,我说 Kotlin 好,我把好的理由讲给你听,你觉得没道理,你可以针对这些进行反驳,或者提出新的观点,然后和我进行讨论。用“不习惯”作为理由来拒绝,只会让自己错失“增量”的机会。

    83640

    Kotlin 从拒绝到真香

    Kotlin 语法不习惯;Kotlin 这样强推这么多年,也不温不火,说明 Kotlin 不行。...但劳动人民的智慧是无穷的,程序员们想出各种办法来降低自己犯错概率。从机器码到汇编,到面向流程,到面向对象,到设计模式,编码规范,高级语法特性,不断有新编程技术的出现,让程序员们可以写更简单的代码。...快速实现了一个算法并开始验证的时候,别人可能还在用 C++ 吭哧吭哧地写着 std::vector 的 for 循环;当你用 Swift 快速实现了一个 iOS demo 的时候, 别人可能还在用 objective-C...我们判断一个东西好不好,有没有价值,有没有必要去投入,不要用“习惯”。要把好与不好列出来。...就像我这样,我说 Kotlin 好,我把好的理由讲给你听,你觉得没道理,你可以针对这些进行反驳,或者提出新的观点,然后和我进行讨论。用“不习惯”作为理由来拒绝,只会让自己错失“增量”的机会。

    1.3K20

    iOS快速入门

    的,我也是看完了才知道,但看iOS8的课程也是能同步用Objective-C完成demo的,两边的方法名称完全一样,只有语法的不同。...关于第1的lazy initialization,对于需要判空的,线程不安全的以及自动优化相关的属性需要多加考虑。...initConstrains用于初始化约束,尽量使用makeConstraints,如果约束需要动态更新,重写updateViewConstraints或updateConstraints 关于注释第2:...(2) 常用的第三方库 Masonry Masonry是一个轻量级的布局框架 拥有自己的描述语法 采用更优雅的链式语法封装自动布局 简洁明了 并具有高可读性 而且同时支持 iOS 和 Max OS X...无论是否有navigationBar或tabBar都能够正常显示,且最好不需要自己去判断有没有navigationBar或tabBar 尽量避免hard code间距,如20,44,49等 (6) Effective

    61520

    重回iOS应用开发

    还是Swift来作为开发语言,确实是拿不准,毕竟苹果官方教程主推的还是Swift,但通过同iOS开发多年经验的同学交流后发现,使用Objective-C作为开发语言的项目,居然不在少数,同事经验中也擅长...Objective-C的偏多,所以就选择Objective-C吧。...苹果的应用程序开发,学习曲线并不复杂,从Objective-C语法,到UIkit和Foundation的API,再到Xcode实战开发,UI到业务,再到设计模式,所以整个过程比原来学习的时候还是能顺利的多...在重新熟悉ObjectC语法的过程中,有几个之前关注的不多,记录下: 一、Protocol可以用@property形式声明属性,只不过在Protocol中声明的属性,只有对应的setter/getter...2.禁止@synthesize:如果某属性已经在某处实现了自己的 setter/getter ,可以使用 @dynamic 来阻止 @synthesize 自动生成新的 setter/getter 覆盖

    43420

    颤抖吧!都在我的魔法下颤抖吧!--------我是 iOS 黑魔法师!

    deprecated(过时) 支持语法: 函数 变量 类型 void function(void) __attribute__((deprecated("已经过时请用function2方法","function2...objc_boxable(封箱) 标有objc_boxable属性的 struct 和 union 可以与Objective-C boxed表达式语法 @(...) 一起使用。...类允许一个子类覆盖父类中的一个特定方法,但是期望覆盖方法也会调用父类中的被覆盖的方法。...对于这些情况,我们提供一个属性来指定一个方法需要在子类中的覆盖方法中调用super。 __attribute__((objc_requires_super))这个属性放在方法的尾部。...objc_runtime_visible(只允许在运行时可见) 该属性指定其应用于的Objective-C类对于Objective-C运行时可见,但不对链接器可见。

    74710

    IC设计中值得解决的小问题(一)

    一直存在的一个小问题,就是用 Vim 打开.lib文件的时候,语法高亮不正常,所有的字符,包括关键字和非关键字,通通是红彤彤的大红色。 语法高亮不正常,影响大吗? 有一,但说不上大。...有时候心烦了,就直接敲个:syn off关掉语法高亮。还有一个小问题就是此时 Vim 的整词搜索,* 也不起作用。这个影响稍微大一,因为要多敲几下键盘,或者动用鼠标了。...这么看就有点思路了,可能的原因是第二个 Vim 自带的文件类型设置在后面,覆盖了前面用户自定义的设置。...那么打开第二个设置看看有没有什么线索,搜索lib,可以看到默认的类型是Cobol,这看起来是一种上古的编程语言,和 Synopsys Liberty 完全不搭界。...找 IT 管理员直接改这个文件也许是个办法,不过求人不如求己,再看下有没有其它不影响系统的办法。 在该设置文件的开头,可以看到这么几句(这个注释看起来很不耐烦)。

    1.1K40

    最难学的十大编程语言 Java排第三 它竟是第一名!

    R的语法是来自Scheme。 提名词 R语言作者,George Ross Ihaka:在奥克兰大学统计系任副教授,是R语言的最初作者。 排名理由 作者头发浓密度:100% ?...作为一种解释型语言,Python的设计哲学强调代码的可读性和简洁的语法。相比于C++或Java,Python让开发者能够用更少的代码表达想法。...第五名、Objective-C 颁奖词 Objective-C是一种通用、高级、面向对象的编程语言。它扩展了标准的ANSI C编程语言,将Smalltalk式的消息传递机制加入到ANSI C中。...提名词 Objective-C作者,Brad Cox:美国计算机科学家。于傅尔曼大学主修化学与数学,于芝加哥大学取得数学生物学博士学位。Objective-C主要作者。...小伙伴们大学的时候有没有学过VB呢?现在有没有觉得它比java难呢?哈哈哈...大雄跟你留言板见哦~

    1.4K20

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

    : - (BOOL)removeItemAtURL:(NSURL *)URL error:(NSError **)error; 使用的时候我们会传入一个 &error 再获取这个错误值,来看这个过程中有没有什么错误...另外,基于 Objective-C 的语言特性,这里我们无法阻止调用者对 error 参数传递 nil,但是这个方法在这种情况下依然需要告知调用者是否执行成功,所以返回值是一个必要的设计。...上面那个方法在 Swift 中是这样的: func removeItem(atPath path: String) throws 没有返回值 Objective-C 中为了对外部创建的 NSError...但有一需要注意,在这里我们只能获取到一个 error,我们却无法知道可以获取到一个什么样的 error,我们无法直接通过 API 知道,假如这里 removeItem 不成功,到底可能是因为什么样的原因而导致不成功...由于 try catch 是一种同步的语法,在异步的时候,我们还是只能通过 Error 或者 NSError 来判断执行是否成功。

    1.9K20

    iOS 代码染色原理及技术实践

    iOS开发交流技术群:563513413 染色流程 流程图中涉及到了双端的关键节点以及技术。我们重点介绍编译阶段。...Clang 在整个 Objective-C 编译过程中扮演了编译器前端的角色,同时也参与到了 Swift 编译过程中的 Objective-C API 映射阶段。...Clang 的主要功能是输出代码对应的抽象语法树(AST),针对用户发生的编译错误准确地给出建议,并将代码编译成 LLVM IR。...通常中间代码的表示形式分为:语法树(syntax tree)、三地址指令序列。为了更好的了解 IR 文件。这里介绍下三地址指令。 三地址指令 也可以称为三地址代码。...根据生成流图的规则,可以很容易得到桩位置,[] 处就是插入的桩序号。

    1.6K10

    Objective-C 中的符号一定是恶魔吗?

    消息的符号不仅仅是 Objective-C 代码的味道。我告诉你,它是恶魔! 更新:我最近改变了主意!请参阅我的文章《我接受的符号...》...2、符号掩盖了消息传递 因为符号是消息传递的语法糖,所以你可以写出这样的代码: NSMutableArray *a = NSMutableArray.array; 当然,这已经超出了恶魔的范畴。...哦,所以用括号还是用取决于这个东西是不是属性?但不管用哪种方式,都是传递消息!为什么还要添加第二种消息传递语法呢?...让我们用符号来取代方括号吧;这样看起来就像 Java 了,这样就能提高 Objective-C 的采用率。 但在接触 Objective-C 之前,我并不是一名 Java 开发人员。...由于我看到的几乎所有 Objective-C 代码都使用符号,我意识到自己在逆流而行。

    9610

    Swift是花拳绣腿吗?——谈谈开发语言与程序员的职业发展

    Swift的语法规定,如果case语句不能覆盖所有可能的情况,则必须加default语句来处理其他情况。否则编译不能通过。...在Swift中使用泛型很方便,语法和Java、C#、C++也很类似。 不过使用Objective-C的朋友也有福了,在即将发布的XCode7中,Objective-C也支持泛型了。...如果与 Objective-C比较,Swift在书写效率上完胜。 在编译效率上,由于Swift没有.h头文件和一些其他特性,因此比Objective-C在理论上要快。...有些语法形式(比如枚举类型)变化较大。学习Swift语法可能比Objective-C容易一些,但是也不会是零门槛的。...在下图中我列举了程序员的一些发展方向和对应的关注。 另外,无论我们做什么工作都需要的一些通用能力,比如学习能力,分析和解决问题的能力,创新能力,传承知识和培养人才的能力,沟通能力等等。

    1.5K30
    领券