オープン ソース プロジェクトの機能を拡張しようとして、新しいメソッドを追加するためのカテゴリを作成しました。この新しいメソッドでは、カテゴリは元のクラスの内部メソッドにアクセスする必要がありますが、コンパイラはそのメソッドが見つからない (もちろん内部メソッドです) と言います。このメソッドをカテゴリに公開する方法はありますか?
編集
元のコードを変更したくないので、元のクラス ヘッダー ファイルで内部メソッドを宣言したくありません。
コード
元のクラス実装ファイル (.m) には、次のメソッド実装があります。
+(NSDictionary*) storeKitItems
{
return [NSDictionary dictionaryWithContentsOfFile:
[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:
@"MKStoreKitConfigs.plist"]];
}
カテゴリに、次のメソッドを追加します。
- (void)requestProductData:(NSArray *(^)())loadIdentifierBlock
{
NSMutableArray *productsArray = [NSMutableArray array];
NSArray *consumables = [[[MKStoreManager storeKitItems] objectForKey:@"Consumables"] allKeys];
NSArray *nonConsumables = [[MKStoreManager storeKitItems] objectForKey:@"Non-Consumables"];
NSArray *subscriptions = [[[MKStoreManager storeKitItems] objectForKey:@"Subscriptions"] allKeys];
if(loadIdentifierBlock != nil) [productsArray addObjectsFromArray:loadIdentifierBlock()];
[productsArray addObjectsFromArray:consumables];
[productsArray addObjectsFromArray:nonConsumables];
[productsArray addObjectsFromArray:subscriptions];
self.productsRequest.delegate = self;
[self.productsRequest start];
}
storeKitItems
コンパイラーを呼び出すすべての行で、「クラスメソッド "+storeKitItems" が見つかりません...