Class 文字列名をキーとして、対応するクラス オブジェクトの配列を値として含む辞書があります。
多数の異なるクラス タイプが入ってくる可能性があるため、実行時に動的な割り当てを行いたいと考えました。
このコードでコンパイラ エラーが発生する理由を知っている人はいますか?
// Where obj is an object of type MyClass
Class myClass = NSClassFromString(@"MyClass");
myClass *objectOfTypeMyClass = obj;
アップデート:
これが私がそれを実装した方法です:
Class interestClass = NSClassFromString(classProvidedAsString);
id interest = [interestClass createNewInterestUsingManagedObjectContext:backgroundContext];
[interest setValue:title forKey:@"title"];
[interest addLikedByObject:aFriend];
title は受け入れることができるすべてのオブジェクトのプロパティであり、 createNewInterest はすべてのオブジェクトが持つメソッドです。
問題は、id を InterestClass としてキャストして、そのクラスのプロパティとメソッドを使用しようとしたことでした。