2011-08-07 18 views
6

これは非常に単純な質問ですが、私はしばらくそれに苦しんでいます。私はいくつかのスレッドを読んだが、まだ答えを見つけるように見えることができます。xcode 4プロジェクトに単純なライブラリを追加する

このDDMathParserライブラリを既存のプロジェクトに追加しようとしています。数学パーサーのドキュメントの状態

"DDMathParser"サブフォルダをプロジェクト#import "DDMathParser.h"にコピーするだけでよいです。 "

私のプロジェクトにサブフォルダを追加し、ヘッダー `#import" DDMathParser.h "を最初のビューコントローラに追加しました。最初にXcodeはファイルを見つけることができないと言っていました。フォルダ

#import "DDMathParser/DDMathParser.h" 

を含めるように私のヘッダーを変更Xcodeは、フォルダやヘッダファイルを見つけることのようですが、私は、このような

NSLog(@"%@", [@"1 + 2" numberByEvaluatingString]); 

などのドキュメントからテストを実行するとき、私はエラー「スレッド1を取得しています:受け取ったプログラムsginal: "SIGABRT" 'DDMathParで見ることができますserのサンプルファイルには、ターゲットがある、私はこれが私の問題かどうか疑問に思っています。

は、私は単純なビューコントローラに DDMathParserライブラリを追加しようとしている問題を明確にしていただければ幸いですそうすることでstaement NSLog(@"%@", [@"1 + 2" numberByEvaluatingString]); すべてのヘルプ/明確化を実行します。

答えて

12

まず、DDMathParserコードをサブフォルダのコピーを介してプロジェクトに追加しないでください。そうすることで、今後のコードの更新を簡単に手に入れることができ、一般的にはプロジェクトに外部コードを組み込むことは非常に良いアプローチではありません。

代わりにgit repoをプロジェクトのサブモジュールとして追加する必要があります(gitを使用していますか?)。関連するファイルをプロジェクトにインポートしてください。

  1. プロジェクトにサブモジュールとしてDDMathParserレポを追加します。プロジェクトディレクトリにサブモジュールを追加する方法については、Here are instructionsを参照してください。その答えを見てみましょうが、簡潔にするために、プロジェクトのルートディレクトリにある端末からこのコマンドを発行します:git submodule add https://github.com/davedelong/DDMathParser.git External/DDMathParser。これにより、プロジェクトのルートディレクトリに外部という名前の新しいサブディレクトリが作成され、外部にはDDMathParserプロジェクトがコピーされます。
  2. プロジェクトにDDMathParserディレクトリを追加します。それは<Your Root Project Dir>/External/DDMathParser/DDMathParserディレクトリにあります。 「対象を追加」チェックボックスをチェックし、ではなくをチェックして、「項目をコピー」チェックボックスをオンにしてください。
  3. ビューコントローラに#import "DDMathParser.h"を追加します。

DDMathParserは期待通りに機能するはずです。著者にコードのアップデートがある場合は、ターミナルから次のコマンドを発行してgithubから最新のアップデートを取得することができます:git submodule update

注:最初から新しいプロジェクトを作成し、手順を実行して、問題がないことを確認するためにNSLog()サンプルを含めました。

+0

返信いただきありがとうございましたあなたの投稿は非常に役に立ちましたが、まだエラーが発生しています。私はあなたの指示に従い、コードを外部ディレクトリにダウンロードし、プロジェクトにファイルを追加して問題なくヘッダーを追加することができましたが、テストプログラムを実行すると、DDMathEvaluator.mと_DDDEcimalFunctions m。私はあなたと違ったことを理解しているようです。何か提案がありましたら教えていただき、ありがとうございます。 – user813611

+0

えええええええええええええええええええええええええええええんをプロジェクトに追加している時に、あなたの目標を選択してもよろしいですか? DDMathEvaluator.mを選択すると、それがターゲットに含まれていることを確認できますか?私が言ったように、私は助けを打ち込んでいたので、このステップバイステップで歩いていたので、うまくいきました。テストとして、最初から新しいプロジェクトを作成して試してみることができますか? – memmons

+0

返信Harkonianにもう一度おねがいします。1.私はgitリポジトリ2のmathParserTestビューベースのアプリケーションという名前の新しいプロジェクトを作成しました。私はterminalコマンドを使ってプロジェクトのルートフォルダにあるDDMathParserをダウンロードしました。3. FILE-> mathParserTest "を選択し、項目をグループにコピーしないでDir>/External/DDMathParser/DDMathParserを選択し、追加されたフォルダのグループを作成し、ターゲットに追加するmathParserTestをチェックします。ターゲットの横にmathParserTestという名前のIBアイコンがあります。ファイルを含むフォルダはプロジェクトにインポートされ、コンパイルするまでは正常に見えます。 – user813611

0

私はそれを動作させることができるまで、私もこれらの手順に従った。提案された方法にはいくつかの欠陥があります。

  1. 私はそれを持っていた前に、男は---あなたが唯一 DDMathParserのソースに持参し、あなたのターゲットの一部としてそれらをコンパイルしたよう

    。これにより、 と同じビルド設定、SDKバージョン、デプロイメント system-versionをDDMathParserの作成者として使用することができます。例:

    • 私のターゲットにはARCを使用していませんでした。
    • 私はプロジェクトでMacOS 10.8 SDKを使用することを考えていましたが(多くの理由から)、私はSDK 10.9に切り替えたときに消えてしまった1つのDDMathParserソースで奇妙なARCコンパイルエラーが発生しました)。
    • 私は今、私はそれが
  2. に動作しますがわからないよ、私は、サーバーへの私の親レポをプッシュするとどうなるか分からない、と別の友人が引っ張る、上記のMacOS 10.8とのための私のアプリケーションを提供しなければなりませんそれ。彼は自動的にDDMathParserレポを受け取るでしょうか?どうやって?彼はそれにアクセスする必要があります!スキームは私には完全ではないようです。

私はフレームワークとしての彼のDDMathParserをパッケージに作者を支援することをお勧めします、そして、あなたのプロジェクトにDDMAthParserのプロジェクトファイルをインポートすることができます---ないソース、単純にリンクDDMathParserプロジェクトの製品(プライベートフレームワーク)。はるかに良く見えます。フレームワークは著者の設定を使用してコンパイルすることができ、うまくパッケージ化されたバイナリを受け取るだけです。

関連する問題