# Thrift Test of Java and Objective-C **Repository Path**: liminzju/Thrift-Test-of-Java-and-Objective-C ## Basic Information - **Project Name**: Thrift Test of Java and Objective-C - **Description**: 分别用java和oc测试thrift的序列化 - **Primary Language**: Objective-C - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 7 - **Forks**: 1 - **Created**: 2014-09-22 - **Last Updated**: 2025-05-10 ## Categories & Tags **Categories**: sample-code **Tags**: None ## README # Thrift Test of Java and Objective-C README涉及内容: 1. MAC上安装Thrift 2. 使用java和oc对thrift进行测试 目录结构: ``` |-- TestMessage.thrift // thrift测试schema文件 |-- gen-cocoa // 通过TestMessage.thrift生成的oc class |-- gen-java // 通过TestMessage.thrift生成的java class -- lib // thrift java库和oc库 | |-- cocoa // oc库,需要加到xcode测试工程 | `-- java // java库, 需要加到eclipse测试工程 |-- testThriftJava // java测试程序 `-- testoc2 // oc测试程序 ``` ## MAC上安装Thrift 目前[Thrift](thrift.apache.org)官方release版本是0.9.1。 但是直接从github上下载0.9.1在编译的时候会碰到各种问题。 所以我们选用brew安装: ``` brew update brew install thrift ``` 安装时可以看到除了下载0.9.1版本,还下载了一些patch。 在如下文件目录可以查看: ``` ➜ ls /Library/Caches/Homebrew/thrift-* ``` ## 测试 #### 生成测试类 1. 通过thrift定义语法定义一个简单的测试结构: ``` ➜ studythrift git:(master) ✗ cat TestMessage.thrift struct TestMessage { 1: string text, 2: string date } ``` 2. 通过TestMessage.thrift生成java和oc对象, 分别生成了gen-java和gen-cocoa文件夹 ``` ➜ studythrift git:(master) ✗ thrift --gen java TestMessage.thrift ➜ studythrift git:(master) ✗ thrift --gen cocoa TestMessage.thrift ➜ studythrift git:(master) ✗ ls TestMessage.thrift gen-cocoa gen-java ``` #### 获得java和oc使用的thrift lib * 解压/Library/Caches/Homebrew/thrift-0.9.1.tar.gz * 在lib/java目录下运行ant,生成java所需要的所有jar包。 * 在lib/cocoa里包含了oc的lib源文件, 暂时没有研究怎么把这些文件编译成dylib,测试程序中将直接拷贝这些文件到工程文件里。 * `java所需要的jar包已经整理到lib/java/thrift目录` * `oc需要的lib已经整理到lib/cocoa/thrift` #### 构建java和oc测试程序 1. 新建java工程,并且将lib/java/thrift里所有jar包添加到工程,并且从gen-java里拷贝TestMessage.java, 完整的测试程序可以在testThriftJava目录找到。 2. 新建oc command line工程, 并添加lib/cocoa/thrift里的所有文件, 从gen-cocoa里拷贝TestMessage.h和TestMessage.m文件。为了测试程序import头文件方便,把xcode工程里always search user path属性改称yes。 完整的测试程序可以在testoc2目录找到。