1

私はこれで数時間忙しかったが、頭も尻尾も見えない.

NS(Mutable)Dictionary送信メソッド クラスと同じクラスを返すことができるカテゴリを作成するにはどうすればよいですか。

サンプル

+(NSDictionary *)dictionaryWithAdditions:path error:(NSError**)error;

NSDictionary * dict = [NSDictionary dictionaryWithAdditions:path error:&error];

を返す必要がありNSDictionaryます。

+(NSMutableDictionary *)dictionaryWithAdditions:path error:(NSError**)error;

NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithAdditions:path error:&error];

NSMutableDictionary を返す必要があります。

id可能性のある警告などを避けるために、を返したくありません。

エラー管理を使用して 1 つのカテゴリでこれを作成する方法を提案してください。

4

2 に答える 2

0

2 つの異なるメソッド (例: dictionaryWithAdditions:and mutableDictionaryWithAdditions:) を作成するか、return id(後者をお勧めします) する必要があります。型システムでは、「レシーバーが NSDictionary として静的に型指定されている場合は NSDictionary、レシーバーが NSMutableDictionary として静的に型指定されている場合は NSMutableDictionary、それ以外の場合はエラー」と言うことができません。

于 2011-12-30T00:04:34.853 に答える