私はペットプロジェクトに数週間取り組んでおり、自分自身と数人の友人がそれを使用する可能性があると考え始めています. 現時点では、これは XCode プロジェクト内の目的の C クラスの山にすぎず、main() を使用してさまざまな機能をテストしてきました。今後は、.dylib ファイルとしてパッケージ化すると、このライブラリをプロジェクトで使用するのが最も簡単なようです。私が他の言語で見つけたように、これを後付けとして行うのは厄介であり、理想的には最下段にまで広げられます。:)
私は Objective-C/Xcode の世界に非常に慣れていませんが、Apple の「動的ライブラリ プログラミング トピック」によると、インターフェイス ファイルを次の形式に再調整するだけの問題であるという印象を受けています。
@protocol Person
- (void)setName:(NSString*)name;
- (NSString*)name;
@end
@interface Person : NSObject <Person> {
@private
NSString* _person_name;
}
@end
(参照された Apple doc から取得)。
場所:クラスを .dylib に含めるために含めたいメソッドを含むプロトコルを定義してから、前述のプロトコルを実装し、ここで ivar を宣言する NSObject をサブクラス化するインターフェイスを定義しています。
いくつかの質問:
dylib に「EXPORT」したくないプロトコルからメソッドを省略できますか?
dylib 内にクラスのサブクラスがある場合、サブクラス用に別のプロトコルを作成し、新しく作成されたクラスのスーパークラスにそのプロトコルを実装させる必要がありますか? たとえば、 person をサブクラス化すると、次のようになります。
@protocol CatPerson
/* any additional methods for CatPerson not in Person */
- (void) protractClaws;
- (void) retractClaws;
@end
@interface CatPerson : Person <CatPerson> {
@private
/* any additional ivars for CatPerson not in Person */
NSNumber *clawCount;
}
これはおそらく非常に些細な質問ですが、すべてのクラスを .dylib に移動するという歯ぎしりを経験する前に、やらなければならないことをすべて理解しようとしています。