1, 通过 Xcode 建立一个空 workspace。
2, 通过 Xcode 建立一个空工程到第一步建立的 workspace 中。wsi 项目不使用 xib 和 interface-builder,以及不使用新版本的 ReferenceCount 的垃圾回收。
3, 将 wsi/ios/wsi.xcodeprj 拖到workspace中。
现在workspace应该是如下结构:
workspace
yourapp
wsi
4, 添加 wsi 头文件, 将 wsi/wsi 文件夹拖拽到 yourapp 下面
yourapp
wsi
yourapp
frameworks
products
5, 重命名 main.m 到 main.mm, 并修改其为
# import "WSIFoundation.h" // wsi 头文件
# import "WSIExecution.h" // wsi lib-bug 头文件
# import "AppDelegate.h" // app delegate.
int main(int argc, char *argv[]) { int ret; WSI_AUTORELEASEPOOL_BEGIN ret = UIApplicationMain(argc, argv, nil,NSStringFromClass([AppDelegate class])); WSI_AUTORELEASEPOOL_END return ret; }
6, 修改AppDelegate.h文件。继承 WSIApplication 类
@interface AppDelegate : WSIApplication
@end
7, 重命名AppDelegate.m 到 AppDelegate.mm, 并修改为
import "WSIFoundation.h"
import "AppDelegate.h"
@implementation AppDelegate
- (void)load:(UIApplication )application options:(NSDictionary )launchOptions {
}
@end
8, 选中项目yourapp的target,修改 Build Phases 中的 Link Binary With Libraries,增加
QuartzCore.framework
libxml2.dylib
libicucore.dylib
libwsi.a
以及 wsi/lib/iOS/ 目录下面的 libdb.a
9, 编译。
10, 按照 C++ 的方式建立 RootController。
{ public: void layout_subviews() {} }; class RootController : public ::wsi::ui::Controller<RootController, RootView> { public: void view_loaded() {} };
11,对AppDelegate。mm 的load中添加代码。
RootController root;
self.window.rootViewController = root;
完成工程简历。实例工程位于 wsi/ios/sample/cxx 中。