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

Objective-C 中的点运算符

在Objective-C中,点运算符(.)用于访问对象的属性和方法。它是一种简化的语法,使得访问对象的成员变量和方法更加直观和方便。点运算符的左侧是一个对象,右侧是要访问的属性或方法。

例如,假设我们有一个名为Person的类,它有一个名为name的属性和一个名为sayHello的方法。我们可以使用点运算符来访问这些成员:

代码语言:objective-c
复制
Person *person = [[Person alloc] init];
person.name = @"John";
[person sayHello];

在上面的代码中,我们首先创建了一个Person对象,然后使用点运算符来设置name属性的值为@"John",最后调用sayHello方法。

需要注意的是,点运算符只能用于对象,而不能用于结构体或基本数据类型。如果需要访问结构体或基本数据类型的成员,需要使用C语言的语法。

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

相关·内容

Objective-C 中我接受的点符号

不管怎么样样,点符号还是可以的。 好了,这是我说的。 我曾一直是点符号的坚定反对者。我认为它掩盖了消息传递,并鼓励程序员通过链式点语法来违反 "得墨忒耳定律(Law of Demeter) "。...我甚至将点符号描述为 Objective-C 代码的一种气味。 因此,你可能会惊讶地发现,我最近在代码中采用了点符号!事情是这样的......在我观念转变之前 我有两个编码习惯让你们中的一些人觉得很奇怪: 对于一个属性,我更倾向于通过它的 ivar 进行访问。 当然,我也没有使用点符号。 有人说,"访问属性时一定要使用 self."。...而在 KVO 中,所有的观察都会转到一个方法,然后该方法必须根据变化的类型来处理分派。 但我不知道的是,直接操作 ivar 并不会触发 KVO。...点符号:仍在关注得墨忒耳定律 我仍然时刻关注着点符号的数量,对得墨忒耳定律保持着敏感。连锁点仍然散发着不恰当的亲密关系的味道。

10710

【iOS 开发】Objective-C 运算符

算术运算符 算术运算符 : 加(+), 减(-), 乘(*), 除(/), 模(%), 自增(++); -- 其它运算 : 如果需要平方开放运算, 使用 math.h 中得方法即可; 源码示例 :  /...d", mod); //自增运算 int e = c++ + 6; NSLog(@"自增 : c = %d , e = %d", c, e); //次方计算, 调用 math.h 中得...位运算符 数据转二进制 :  -- 正数 : 如果数字是正数, 按照正常编码; -- 负数 : 数字是负数, 除了符号位 1, 最高位不变, 剩下的按位取反 加 一; -- 负数转成二进制数 : 补码形式...表达式n", 结果返回的时 表达式n 的值; 代码示例 :  /*********************************************************************...三目运算符 三目运算符格式 : "表达式1 : 表达式2 : 表达式3", 如果表达式1 为 true, 返回 表达式2 的值, 表达式1 为 false, 返回 表达式3 的值; 示例源码 :  /*

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

    消息的点符号不仅仅是 Objective-C 代码的味道。我告诉你,它是恶魔! 更新:我最近改变了主意!请参阅我的文章《我接受的点符号...》...本文是Objective-C 中的代码气味系列文章中的一篇。* ......是的,这是夸张的说法。在有点符号的项目中,我确实能与点符号共存。但我不会自己写。...在 Objective-C 中加入点符号,让人联想到苹果公司的某个人说: Java is such a popular language....Java 是一种如此流行的语言。我们的方括号吓坏了 Java 程序员。让我们用点符号来取代方括号吧;这样看起来就像 Java 了,这样就能提高 Objective-C 的采用率。...现在来看看 Objective-C。在点符号这个邪恶的新大陆上,你经常会看到这样的情况: self.qux = 10; 其中 qux 是一个属性。

    10910

    Objective-c运算符执行顺序对照表

    Objective-c运算符执行顺序对照表:在线查看Objective-c运算符执行优先级别 窍门: Ctrl+F 快速查找 Objective-c运算符优先级表:同一行中的运算符具有相同优先级,然后运算符的优先级是运算表达式从左到右...++变量名/变量名++ 单目运算符 -- 自减运算符 --变量名/变量名-- 单目运算符 * 取值运算符 *指针变量 单目运算符 & 取地址运算符 &变量名 单目运算符 !...表达式 单目运算符 ~ 按位取反运算符 ~表达式 单目运算符 sizeof 长度运算符 sizeof(表达式) 3 / 除 表达式/表达式 左到右 双目运算符 * 乘 表达式*表达式 双目运算符...% 余数(取模) 整型表达式/整型表达式 双目运算符 4 + 加 表达式+表达式 左到右 双目运算符 - 减 表达式-表达式 双目运算符 5 运算符...>> 右移 变量>>表达式 双目运算符 6 > 大于 表达式>表达式 左到右 双目运算符 >= 大于等于 表达式>=表达式 双目运算符 运算符 <= 小于等于

    27820

    Objective-C中的集合类

    下面详细的介绍Objective-C中的集合类以及每个集合类的用法,学过其他面向对象编程语言的小伙伴们看到OC的集合类会有种莫名的亲切感,理解起来问题不大,可以类比Java中的集合类去学习...在Objective-C中的集合类中主要包括不可变的数组--NSArray,  可变的数组--NSMutableArray,   不可变的字典--NSDictionary,    可变的字典--NSMutableDictionary...一、数组         1.不可变的数组  NSArray             数组是有序对象的集合,用来存储对象的有序列表,在OC中数组中必须存的是对象,不能是基本数据类型,若想存入基本数据类型...NSArray也是OC中的一个对象,使用NSArray也需要进行实例化,前面的博客在类的初始化中提到了便利初始化函数和便利构造器,在NSArray中也少不了这两样东西我们可以通过NSArray的便利初始化函数或者便利构造器进行...OC中的集合类中是不能放基本数据类型的,那么我们如何把基本数据类型封装成对象呢?

    1.1K70

    Objective-C中的语法糖

    当时把注意力放在了深浅拷贝的内存地址分析上了,就没太在意,测试做完啦,在回顾的时候发现数组是用下标的方式获取的! 于是就有了个疑问,在OC中这样写也行?...为了更好的偷懒,于是去百度上Google啦一下这是‘ Xcode 4.4中LLVM compiler 4.0’ 引入的新特性(2012年WWDC发布的东西)。...到这小菜本人就有柳暗花明又一村的感觉啦~就可以好好的偷一下懒啦~于是系统的总结了一下引入的新的特性,话不多说,Coder说话哪能少的了code呢!...    在之前的博客中我是这样初始化NSArray的: 1 //NSArray的便利初始化 2 NSArray *array1 = [[NSArray alloc] initWithObjects:@...    也引用我之前博客中得一段代码吧 //不可变字典的初始化 NSDictionary *dictionay = [NSDictionary dictionaryWithObjectsAndKeys

    1K50

    Objective-C中的继承和多态

    在Objective-C中super是指向直接父类的指针,而self是指向本身的指针,self就相当于java中的this指针。...在OC中写类时可以在@implementation中定义哪些在@interface中无相应声明的方法,但这个方法是私有的,仅在类的实现中使用。         ...在Objectiv-C中几乎所有的类都是继承自NSObject类,NSObject类中存在大量功能强大的方法。下面对NSObject类中的各种方法进行试验和介绍:         1....= str1"); }     ​    ​Objective-C中的继承         继承是is-a的关系,比如猫咪是一个动物,那么动物是父类,而猫咪是动物的子类。...2014-07-30 08:38:12.958 HelloOC[483:303] 我是富二代BILL`s son,我超喜欢飙车 ​Objective-C中的多态     ​    ​多态简单的说就是对于不同对象响应同一个方法时做出的不同反应

    1.2K80

    Objective-C中的Block(闭包)

    学习OC中的block之前也小担心一下,Block在OC中属于高级的部分,心里有又有个疑问:学起来难不难?...看过Block的部分,感觉Block挺好理解的,用起来也挺顺手的,Block没我想象中的那么难理解。         废话少说,学习一门新的编程语言是少不了代码量的支持的,所以代码是少不了的。...下面就通代码来认识一下OC中的block的使用。   ...,然后在调用代码块的时候修改两个局部变量的值,然后再代码块中显示变量的值。         ...2.成员变量在block中的使用     ​    ​成员变量在block中的使用是加上self->a使用的,所以在声明成员变量的时候加不加__block,在成员函数中的代码块中都可以访问修改;     ​    ​

    1.5K90

    Objective-C中runtime机制的应用

    Objective-C中runtime机制的应用 一、初识runtime         Objective-C是一种动态语言,所谓动态语言,是在程序执行时动态的确定变量类型,执行变量类型对应的方法的...,首先,在头文件中没有提供任何的方法接口,我们没有办法使用点语法做任何操作,privateOne和PrivateTow两个变量虽然声明在了头文件中,却是私有类型的,通过指针的方式我们虽然可以看到他们,却不能做任何读取修改的操作...,xcode中的提示如下: ?...五、让我看看你的方法吧         变量通过runtime机制我们可以取到和改变值,那么我们再大胆一点,试试那些私有的方法,首先我们在MyObject类中添加一些方法,我们只实现,并不声明他们: @...七、做点小手脚         程序员总是得寸进尺的,现在,我们要做点事情,用我们的函数替换掉类中的函数: - (void)viewDidLoad {     [super viewDidLoad];

    40850

    Objective-C中NSArray类的解读

    Objective-C中NSArray类的解读     NSArray数组类是Objective-C语言中常用的也是重要的一个类,除了开发中常用到的一些基础功能,NSArray及其相关类中还封装了许多更加强大的功能...NSArray中属性与方法: //获取数组中元素个数 @property (readonly) NSUInteger count; //通过下标获数组中的元素 - (ObjectType)objectAtIndex...; //像数组中追加一个元素 这个方法会返回一个新的数组 - (NSArray *)arrayByAddingObject:(ObjectType)anObject; //像数组中追加一组元素...)range; //获取某个元素在数值中的下标值 - (NSUInteger)indexOfObject:(ObjectType)anObject; //获取某个范围内的元素的下标值 - (NSUInteger...:(ObjectType)anObject; //在一定范围内 获取与给定元素相同的元素在数组中的最小下标值 - (NSUInteger)indexOfObjectIdenticalTo:(ObjectType

    1.3K20

    Objective-C中的类目,延展,协议

    Objective-C中的类目(Category),延展(Extension),协议(Protocol)这些名词看起来挺牛的,瞬间感觉OC好高大上。...一.Objective-C中的类目(Category)         在Objective-C比其他OOP的编程语言多了个类目,在OC中除了用继承来扩充类的功能函数外我们还可以用类目来实现。...二.Objective-C中的延展(Extension)         简单的说匿名类目就是延展,在延展中定义的方法是类私有的方法只能在类的内部调用,定义延展的方式就是把类目中括号中得名字省略掉,括号保留这就是延展...其实在延展中定义的方法不是真正的私有方法和C++, Java中得方法还有所区别,在类初始化的文件中引入相应延展的头文件,其延展对应的方法也是可以访问的。...这种方法不能实现真正的方法私有,当在别的文件中引入延展的头文件,那么在这个文件中定义的类的对象就可以直接调用在延展中定义所谓私有的方法。

    1.1K80

    Objective-C中的委托(代理)模式

    还是那句话,第一次接触代理模式是在Java中接触的,在Java中实现代理模式和接口是少不了的。当时学习Spring的时候用到了接口回调,其实就是实现的委托代理模式。...简单的说代理就是把相应的功能交给实现接口的相应的类中来解决。在OC中没有接口该如何实现代理呢?...前面的博客中笔者说提了一句,在OC中的协议和Java中的接口极为相似,都是只声明方法而不去实现,方法的实现在OC中交个遵循协议的类,而在Java中方法的实现交给实现接口的类。...其实学习一门新的语言和以前学习过的语言对比着理解还是蛮好理解的,废话少说,切入正题,谈一下OC中的委托代理模式。         下面还是用房屋中介和房东的例子来表示OC中的代理模式。...1.在Java中写代理的话,我会先写房屋中介的接口,所以在OC中我们首先也要先声明房屋中介的协议,Protocol中的方法是每个房屋中介必须有的方法,所以在Java中会抽象成接口,而在OC中我们会把他声明为协议

    1.3K90

    Objective-C中的单例模式

    不过在23种设计模式里面单例模式还是算比较好理解的, 那么在OC中又是怎么来表示单例模式的呢?下面会结合着代码,理解一下OC中得单例模式。     ​    ​...下面我们会建立一个生成单例的类SingletonClass,在实现文件中定义各种方法来实现我们的单例模式。     ​    ​...1.单例模式一般用全局静态对象来实现,所以我们在SingletonClass.m中定义一个静态全局变量是少不了的 1 2 //定义静态全局变量 static SingletonClass *single...= nil;     ​    ​2.上面的静态变量是定义在实现文件中的所以是私有的,要想获取该类的实例得有个getInstance方法来获取实例,在给静态变量分配内存空间之前首先要判断是否已经分配过啦...,下面开始我们的测试吧;     ​在main函数中的代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 //单例模式的测试 SingletonClass

    1.9K70
    领券