日々精進

新しく学んだことを書き留めていきます

iOS8SDKでビルドしたらdescriptionプロパティ・hashプロパティをoverrideしているクラスで「use of undeclared identifier」エラー

原因はNSObjectの以下のメソッドがreadonlyプロパティに変更されたこと。 ・hash ・superclass ・description ・debugDescription これによって、_descriptionのようなインスタンス変数が自動で作られなくなった。 以下のようにしてインスタンス変数を手動で作ると直った。

@synthesize description=_description;

サブクラスで以下のようにreadwriteプロパティを宣言しても直らなかった。superclassの宣言が優先されるんだろうか。

@property (readwrite, copy) NSString *description;

参考:

Cocoaの日々: [iOS8] NSObjectに新プロパティ4つ