iOS-调用[UIColor redColor]vs UIColor.redColor
在iOS/Objective-C中,我想知道以两种不同的方式调用某些类常量有什么区别 基本上,iOS-调用[UIColor redColor]vs UIColor.redColor,ios,objective-c,Ios,Objective C,在iOS/Objective-C中,我想知道以两种不同的方式调用某些类常量有什么区别 基本上,[UIColor redColor]和UIColor.redColor之间有什么区别?我看到几乎所有的教程都用括号写,但从我的测试来看,并没有任何区别。这适用于许多其他类似情况,例如: NSNotificationCenter.defaultCenter,Object.class等。是否有任何理由使用括号,或者我可以保留一个标准并使用点(.) 另外,您将如何定义这样的类变量?如果我有一个名为BestCl
[UIColor redColor]
和UIColor.redColor
之间有什么区别?我看到几乎所有的教程都用括号写,但从我的测试来看,并没有任何区别。这适用于许多其他类似情况,例如:
NSNotificationCenter.defaultCenter
,Object.class
等。是否有任何理由使用括号,或者我可以保留一个标准并使用点(.)
另外,您将如何定义这样的类变量?如果我有一个名为
BestClass
的类,我如何创建一个变量,例如BestClass.coolColor
,它将返回UIColor(与调用UIColor.redColor
返回UIColor对象的方式相同)?点语法用于调用属性的setter/getter方法(使用@property
语句定义)并且给定的属性是在实例级别定义的,而不是在类级别定义的,因此形式[ClassName methodName]
更好
然而,这只是语法上的糖分,所以两者都能起作用
类方法是使用+
定义的:
@interface MyClass : NSObject
+ (int)aClassMethod;
@end
都一样。
调用属性的访问器方法的默认方法是括号表示法,这里的点表示法只是一种简单的方法
从Obj-C编程指南:
点语法纯粹是一种方便的访问器包装方法
调用。使用点语法时,仍然可以访问或删除该属性
使用上述getter和setter方法进行更改:
使用somePerson.firstName获取值与使用
[某人的名字]
使用somePerson.firstName设置值=
@“Johnny”与使用[somePerson setFirstName:@“Johnny”相同
可能重复的