1

チュートリアルには、次の宣言があります。

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

私はこれをwriteToFileメソッドが結果を返すと解釈していますBOOL。2つのパラメータを取ります。1つ目はNSStringリファレンスです。2つ目は、値を呼び出しatomicallyて渡した結果BOOLです。

私はそれを正しく理解しましたか?

チュートリアルでは、上記のメソッドを次のように呼び出すと述べています。

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

これは見つけます。しかし、私は「atomically:NO」を使用しなければならないのだろうか

私は次のようなことをしたでしょうか

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

resultOfAtomically私が正しく宣言したと仮定します。

また、「値ではなく参照を教えてください」のような意味の@前置はありますか?"/tmp/log.txt"

4

1 に答える 1

2

このテキストatomicallyでは、メソッドの 2 番目のパラメーターが紹介されていますがwriteToFile:atomically:、これは別個の関数ではありません。したがって、単純に呼び出すことはできませんatomically:NO。ただし、これは正しいでしょう。

BOOL myBool = NO;

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

Objective-C メソッドについて話すときは、このメソッドを「writeToFile」と呼ぶのではなく、「writeToFile:atomically:」と呼びます。この構文により、メソッドが 2 つのパラメーター (コロンごとに 1 つ) を想定していることがわかります。

メソッド宣言がどのように分解されるかについて考える方法は次のとおりです。

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

-= インスタンス メソッドの定義 (+クラス メソッドの場合)。

(BOOL)= ブール値を返します。

write= この方法は、何かを書くことです (魔法ではなく、親しみやすい言葉の選択printです。

ToFile:(NSString *)path= メソッドの最初のパラメーターであるパスは NSString ポインターであり、わかりやすいテキスト "ToFile" (これも単語の選択であり、特別なことは何もありません) は、そのパラメーターにファイル パスを指定する必要があることを示しています。

atomically:(BOOL)useAuxiliaryFile;= メソッドの 2 番目のパラメーターである useAuxiliaryFile はブール値であり、わかりやすいテキスト「原子的に」(まだ特別なことは何もありません) は、ブール値がファイルを原子的に書き込むかどうかを決定することを示唆しています。

于 2013-01-16T15:00:14.823 に答える