3

OK、Cocoaライブラリ(静的)を作成して使用しようとしていますが、エラーが発生し続けます。

TSXLib追加のクラスが1つだけある、超基本的な静的ライブラリ()を作成しました。

#import <Foundation/Foundation.h>

@interface ClassOne : NSObject

- (void)doIt;

@end

#import "ClassOne.h"

@implementation ClassOne

- (void)doIt
{
    NSLog(@"Oops... I did it again!");
}

@end

次に、(ビルド設定で)ダイナミックライブラリのインストール名を次のように設定します。

@executable_path/../Frameworks/libTSXLib.a

今私のテストプロジェクトで:

  • ファイルをドラッグアンドドロップしlibTSXLib.aます(そしてターゲットにコピーします)
  • をコピーするビルドフェーズ(ファイルのコピー)を追加しましlibTSXLib.aFrameworks
  • 次にAppDelegate.m、ライブラリのクラスをインポートしてみます
  • #import <ClassOne.h>、コンパイラはクラスが見つからないというエラーをスローします

何か案は?


注: 私は実際、ライブラリやフレームワークなどに関してかなり混乱しています(そのため、私はそれらを可能な限り避ける傾向があります)。私がやろうとしているのは、さまざまなプロジェクトで簡単に再利用できるように、いくつかのクラス/関数をパックすることです。フレームワークであろうとライブラリであろうと、私は本当に気にしません。私が必要としているのは、コードをパックして再利用することです。(バンドルされている場合、誰もが入っているものを見たり使用したりするのをブロックする機能はプラスになります)

4

1 に答える 1

7

OK、それで、しばらくして戻ってきて、これが私がそれを機能させるためにしたことです:

ステップ1:ライブラリを作成する

  • 組み込みのCocoaライブラリテンプレートを使用して、新しいプロジェクトを作成します
  • ライブラリタイプ静的に設定します。
  • クラス/関数/その他を追加します
  • ビルドフェーズで、どのヘッダーが公開されるかを確認します。

ステップ2:テストプロジェクトでライブラリを使用する

  • 最後の.aライブラリファイルをプロジェクトにドラッグアンドドロップします(ターゲットディレクトリにもコピーするかどうかは関係ありません)。
  • ライブラリに対するリンク
  • ユーザーヘッダーの検索パスを最初のライブラリファイルの元に更新します.a(再帰を使用して/the/path/to/your/library/folder/**
  • [常にユーザーパスを検索する]を[YES
  • [ビルド設定]の下の[他のリンカーフラグ-ObjCに追加] 。
于 2013-02-12T02:22:23.940 に答える