难以理解语法

时间:2013-01-16 14:52:34

标签: objective-c

tutorial中有以下声明:

-(BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile;

我正在解释这一点,因为writeToFile方法返回BOOL结果。它需要2个参数。第一个是NSString引用。第二个是调用atomically并传递BOOL值的结果。

我做对了吗?

本教程继续说你像上面这样调用上面的方法:

BOOL result = [myData writeToFile:@"/tmp/log.txt" atomically:NO];

找到了。但我想知道我是否必须使用“原子地:不”

我可以做一些像

这样的事吗
resultOfAtomically = atomically:NO
BOOL result = [ myData writeToFile:@"/tmp/log.txt" resultOfAtomically ];

假设我正确地宣布了resultOfAtomically

此外,将@添加到"/tmp/log.txt"是否意味着“给我参考而不是价值”?

1 个答案:

答案 0 :(得分:2)

文本atomically引入了writeToFile:atomically:方法的第二个参数,它不是一个单独的函数。因此,您无法简单地拨打atomically:NO。但这是正确的:

BOOL myBool = NO;

BOOL result = [myData writeToFile:@"/tmp/log.txt" atomically:myBool];

在谈论Objective-C方法时,你不会将此方法称为“writeToFile”,你会称之为“writeToFile:atomically:”。通过这种语法,您知道该方法需要两个参数(每个冒号一个)。

这是一种思考方法声明如何分解的方法:

-(BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile;

- =定义实例方法(+将用于类方法)。

(BOOL) =返回一个布尔值。

write =这个方法是关于写一些东西(没什么神奇的,只是一个友好的单词选择 - 可能是print或其他东西)。

ToFile:(NSString *)path =方法的第一个参数path是一个NSString指针和友好文本“ToFile”(再次只是一个单词选择,没有什么特别的)提示我需要提供一个文件路径参数。

atomically:(BOOL)useAuxiliaryFile; =方法的第二个参数useAuxiliaryFile是一个布尔值,友好文本“atomically”(仍然没什么特别的)暗示布尔值决定是否以原子方式写入文件。