全面披露:
我不是一个受过教育的程序员,我的全部编程经验都在 Javascript 和 Objective-C 中。
所以现在你知道你在处理什么了。小心行事。没有突然的动作。
我正在编写一个与 Mac 服务器通信的 iPad 应用程序。我想使用 MongoDB 作为后端,ObjCMongoDB 看起来非常适合,但我无法使用此处的说明使其工作:
https://github.com/noa--/ObjCMongoDB/wiki/GettingStarted https://github.com/noa--/ObjCMongoDB/wiki/GettingStarted
我的重现步骤:
从 gitHub 上的 ObjCMongoDB 主页面,单击“Clone in Mac”(我使用 GitHub for Mac 来处理下载)
-
从命令行导航到 ObjCMongoDB 目录并输入:
git submodule update
-
Then:
git checkout v0.9.6
复制mongo-c-driver/src文件夹放入 XCode 项目文件夹中
在 XCode 中,在项目中创建一个名为“ObjCMongoDB”的新组并选择它
Add the src将步骤 4 中的文件夹复制到项目,但不复制到目标。
更改名称src在项目中mongo-c-驱动程序
-
将这些文件添加到mongo-c-驱动程序到目标:
- bson.c
- 编码.c
- 数字.c
- mongo.c
- md5.c
- env.c
-
在 XCode 中,再次选择 ObjCMongoDB 组,并将以下文件夹添加到项目和目标中,选中“为任何添加的文件夹创建组”:
- ObjCMongoDB/BSON
- ObjCMongoDB/Mongo
- ObjCMongoDB/OrderedDictionary
根据分步指南,我现在应该能够构建并运行我的项目,但有错误。
-
首先,从MongoConnection+Diagnostics.h:
#import <ObjCMongoDB/ObjCMongoDB.h>
我没有一个名为对象CMongoDB此时,这显然会失败。
-
更让人困惑的是这个漂亮的错误 http://pressuremedia.com/stackoverflow/error.png,然后是有问题的 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 的作者。感谢您对图书馆的兴趣以及对您的问题的提醒。
要解决第一个问题,请更改#import
线路输入MongoConnection+Diagnostics.h
to #import "ObjCMongoDB.h"
。 (在上一个版本之后,这已在 master 中修复。)
发生另一个问题是因为 v0.9.6 基于比您正在使用的文件更早版本的 Mongo C 驱动程序,我猜您是从 Github 上的 10gen 存储库下载或克隆的。
C 驱动程序被设置为子模块,因此当您克隆 ObjCMongoDB 时,您应该会看到一个空的mongo-c-driver
folder.
从存储库根目录,您可以运行以下命令:
git submodule update --init
它应该加载正确版本的 Mongo C 驱动程序(我的 fork 从 v0.9.6 开始,但下一个版本将使用官方版本)。我在自述文件中添加了有关此步骤的注释。
添加这些版本后.[ch]
相反,它应该正确构建。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)