2013-01-16 85 views
1

tutorial有以下聲明:很難理解語法

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

我解釋這是writeToFile方法返回一個BOOL結果。它需要2個參數。第一個是NSString參考。第二個是調用atomically並將值傳遞給BOOL的結果。

我知道了嗎?

本教程接着說你撥打上面的方法是這樣的:

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

這是找到。但我不知道如果我必須用「原子:NO」

難道我做了什麼樣

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

假設我宣佈resultOfAtomically正常。

此外,是否預先@"/tmp/log.txt"的意思是像「給我參考不是價值」?

+0

關於@ before @「/ tmp/log.txt」,@「」定義了一個NSString對象,而沒有@,簡單的「」定義了一個C風格的字符串。 –

回答

2

文字atomically介紹了writeToFile:atomically:方法的第二個參數,它不是一個單獨的函數。因此,您不能簡單地致電atomically:NO。這將是正確的,但是:

BOOL myBool = NO;

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

在談到Objective-C的方法,你就不會調用此方法 「將writeToFile」,你會稱它爲 「將writeToFile:原子」。通過這個語法,你知道該方法需要兩個參數(每個冒號一個參數)。

這裏有一個方法來思考方法聲明如何分解:

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

- =定義一個實例方法(+將是一個類的方法)。

(BOOL) =返回一個布爾值。

write =這種方法是關於寫東西(沒有什麼魔力,只是友好的詞選擇 - 可能是print或其他)。

ToFile:(NSString *)path =該方法的第一個參數path是NSString指針,友好文本「ToFile」(再次只是一個詞的選擇,沒有什麼特別)暗示我需要爲該參數提供一個文件路徑。

atomically:(BOOL)useAuxiliaryFile; =該方法的第二個參數useAuxiliaryFile是一個布爾值,並且友好的文本「原子地」(仍然沒有特別的)暗示該布爾值決定是否以原子方式寫入文件。

+0

仍不清楚。 這是屬於被writeToFile引用的obj的原子方法的定義嗎? – user1126515

+0

沒有原子方法,原子只是writeToFile的一個參數:atomically :.這裏是另一個具有相似結構的例子:' - (int)addThisNumber:(int)num1 toThisOne:(int)num2;'方法是'addThisNumber:toThisOne:'和「toThisOne」簡單地設置方法的第二個參數。沒有單獨的「toThisOne」方法。在另一種語言中,你的原始方法可能寫成:(BOOL)writeToFile(string fileName,BOOL); Objective-C只是使用不同的參數語法。 –

+0

不要成爲一個混蛋,但在你的例子中,你說的方法是addThisNumber:toThisOne它違背了你的聲明,原子不是在writeToFile中的方法:原子 這是一個錯字? – user1126515