2010-11-28 18 views
1

私は次のコードを書いていますが、コンパイラが警告またはエラーを表示しないのはなぜですか? Objective-CでgetActiveComputer関数の関数の戻り値

const computer* const activeComputer = [self.setting getActiveComputer]; 
activeComputer.name = [service name]; 
activeComputer.ipAddr = ipAddress; 

宣言

- (const computer* const) getActiveComputer 
+0

'computer'は' struct'またはオブジェクトですか?違いがあります。 – jer

答えて

4

ドット表記は/セッターメソッドをゲッタリングするオブジェクトを呼び出すための短い手です。私は何の警告はありませんので、メソッドを呼び出すと、constの宣言に違反していないと思うだろう

[activeComputer setName:[service name]]; 

:何あなたが持っていることに相当します。

+0

こんにちは、あなたは私を誤解しているようです、私はcompliderが私のコードにいくつかの警告とエラーを出すべきですが、コンパイラは実際に何かエラーや警告を出すことはありません。 – user497032

+0

Objective-Cは 'const'オブジェクトをサポートしておらず、@darrenによって与えられた説明は正しいです。コンパイラはメソッドを知る方法がなく、メソッドが 'const'オブジェクトで使用できるかどうかを示す方法はありません。 Appleは、NSArrayとNSMutableArrayのような変更可能なサブクラスを使ってこれを解決します。 –

+0

最初に小文字のクラス名を持つのは混乱しています.... – bbum