2

__attribute__を使用することは、メソッドの特定のプロパティをコンパイラに示唆するための巧妙な方法です。

@interface MyClass : NSObject
- (NSString *)someString __attribute__((pure));
@end
@implementation
- (NSString *)someString __attribute__((pure)) {
  return @"Hello";
}
@end

実装で を削除して__attribute__もビルド警告は発生しません (以前のバージョンの Xcode にはあったと思いますが、そこにマークされていなくてもヘッダーにマークされている場合、コンパイラはすべての場合に属性を見つけますか?実装に含める方が良い方法はありますか?

4

1 に答える 1

0

実際、ヘッダーでマークすることが最も重要です。純粋な関数の有用性は、コンパイラが関数の戻り後に非ローカル メモリを再度読み取る必要がないことにあります。つまり、関数自体ではなく、関数を使用してコーディングするためのヒントです。

于 2013-10-21T21:05:05.113 に答える