プロジェクトをビルドすると、次の警告が表示されます。
ld: warning: instance method 'shareMessage' in category from /Users/attiliopatania/Library/Developer/Xcode/DerivedData/.../Objects-normal/armv7/Place+Factory.o conflicts with same method from another category
私があなたに報告した構造の問題がどこにあるのか理解できません.カテゴリの使い方を間違えているのかもしれません.hファイルで@class宣言のパターンを強制的に使用し、# .m を使用した便利なヘッダー クラスのインポート 誰かが私を助けてくれることを願っています :)
shareMessageは、次のように Place+Factory の親であるクラス Bean.h 内で宣言されたメソッドです。
場所+工場.h
#import "Place.h"
@interface Place (Factory)
...
@end
場所+工場.m
#import "Place+Factory.h"
#import "User+Factory.h"
@implementation Place (Factory)
...
- (NSString*) shareMessage{
return @"myMessage"
}
...
@end
注意: User+Factory は PlaceFactory と同じ構造であり、Bean の子でもあります。
Place.h
#import "Bean.h"
@interface Place : Bean
...
@end
Bean.h
#import <Foundation/Foundation.h>
#import "HttpFunction.h"
#import "Usefull.h"
#import "AppManager.h"
@interface Bean : NSObject
...
- (NSString*) shareMessage;
@end
Bean.m
#import "Bean.h"
@implementation Bean
...
- (NSString*) shareMessage{
return [self.class description];
}
...
@end
更新:最後に解決しました。.h ファイル内の @ class と .m ファイル内の #インポート順序を処理するすべてのクラスを確認します (これが本当の問題のようです)。