C系のプログラムをする人達には常識なのかもしれませんが、Objective CでConstで宣言した値を、メソッド中で使用すると次のようなワーニングが出ます。
const NSString *CLEAR = @"C"; ~ 略 ~ -(BOOL) _isClear:(NSString *)character { if ([CLEAR isEqualToString:character]) { return TRUE; } return FALSE; }
Warningの内容
Assigning to 'NSString *__strong' from 'const NSString *__strong' discards qualifiers
次のように宣言すると警告は出なくなります。
NSString * const CLEAR = @"C";
StackOverFlowに詳しく書かれていますが、そもそも最初の宣言の仕方が間違いだとのことです。NSStringに対するConstになるので、別の意味になるとのことです。今までObjective CでConst使ったことが無いので、全く知りませんでした。(というよりC言語に対する根本の所の理解が足りないのでしょうね。。。)
参照:
sending 'const NSString *' to parameter of type 'NSString *' discards