簡體   English   中英

ObjCMongoDB壞了嗎? 我無法讓它發揮作用

[英]ObjCMongoDB broken? I can't get it to work

全面披露:

我不是一個受過良好教育的程序員,我的整個編程經驗都是在Javascript和Objective-C中。

所以現在你知道你正在處理什么。 小心翼翼。 沒有突然的動作。


我正在寫一個與Mac服務器對話的iPad應用程序。 我想使用MongoDB作為后端,而ObjCMongoDB看起來非常合適,但我不能使用這里的說明來使用它:

https://github.com/noa--/ObjCMongoDB/wiki/GettingStarted

我的重復步驟:

  1. 從gitHub上的主要ObjCMongoDB頁面,單擊“在Mac中克隆”(我正在使用GitHub for Mac來處理下載)

  2. 從命令行,導航到ObjCMongoDB目錄並鍵入:

     git submodule update 
  3. 然后:

     git checkout v0.9.6 
  4. mongo-c-driver / src文件夾復制到XCode Project文件夾中

  5. 在XCode中,在項目中創建一個名為“ObjCMongoDB”的新組並選擇它

  6. 將步驟4中的src文件夾添加到項目中,但不添加到目標。

  7. 將項目中的src名稱更改為mongo-c-driver

  8. mongo-c-driver中的這些文件添加到目標:

    • bson.c
    • encoding.c
    • numbers.c
    • mongo.c
    • md5.c
    • env.c

  9. 在XCode中,再次選擇ObjCMongoDB組,並向項目和目標添加以下文件夾,選中“為任何添加的文件夾創建組”:

    • ObjCMongoDB / BSON
    • ObjCMongoDB /蒙戈
    • ObjCMongoDB / OrderedDictionary

根據分步指南,我應該能夠現在構建和運行我的項目,但是有錯誤。

  • 首先,來自MongoConnection + Diagnostics.h

     #import <ObjCMongoDB/ObjCMongoDB.h> 

    我此時沒有名為ObjCMongoDB的框架,所以這顯然會失敗。

  • 更令人困惑的是這個漂亮的錯誤 ,其次是有問題的API:

     int bson_init_finished_data( bson *b, char *data, bson_bool_t ownsData ) { _bson_zero( b ); b->data = data; b->dataSize = bson_finished_data_size( data ); b->ownsData = ownsData; b->finished = 1; return BSON_OK; } 

    當然似乎期待3個論點......


所以我很茫然。 任何幫助將不勝感激。

我是ObjCMongoDB的作者。 感謝您對圖書館的興趣以及關於您的問題的單挑。

要解決第一個問題, MongoConnection+Diagnostics.h#import行更改為#import "ObjCMongoDB.h" (在最后一個版本之后,這已在master中修復。)

另一個問題正在發生,因為v0.9.6基於Mongo C驅動程序的早期版本而不是您正在使用的文件,我猜您是從Github上的10gen存儲庫下載或克隆的。

C驅動程序設置為子模塊,因此當您克隆ObjCMongoDB時,您應該看到一個空的mongo-c-driver文件夾。

從存儲庫根目錄,您可以運行此命令:

git submodule update --init

應該加載正確版本的Mongo C驅動程序(我的分支從v0.9.6開始,但下一個版本將使用正式版)。 我在自述文件中添加了關於此步驟的注釋。

一旦將.[ch]文件的那些版本添加到項目中,它就應該正確構建。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM