在iOS中,我在调用函数时会有一些困惑。
-(void) function:(NSString*) str
{
selectedstring = str;
}
调用该函数时。
我什么时候应该打电话:
self.function = @"My name";
和
[self function:@"My name"]
(。)参数和[]
之间有什么区别 在iOS函数调用中?
答案 0 :(得分:0)
myVar = self.property
相当于myVar = [self property]
self.property = anotherVar
相当于[self setProperty:anotherVar]
你使用的是风格问题。
有些人会告诉您,点语法只应用于实际定义为属性的事物(使用@property
)。我不同意这一点。我的观点是,只要你调用获取或设置值的东西,就应该使用点语法,而其他副作用最小。无论您是自己编写方法还是合成属性来自动生成它都不重要:重要的是它是否与获取和设置值有关。
所以myArray.count
很好,尽管它不是头文件中的@property
。但是myURLConnection.start
不是,因为它不返回值并且与执行操作有关。
人们不同意这一点。有些人根本不喜欢使用点语法,因为它可能与访问结构的成员(也使用.
)混淆。其他人很乐意使用@property
s的点语法,但不能用于其他方法。