Object-C使用ICE

1. 下载 IceTouch-1.2.1-Xcode-4.3.dmg: http://www.zeroc.com/icetouch/download.html
2. 安装 IceTouch-1.2.1-Xcode-4.3.dmg,安装完成后,会在/Developer/SDKs/IceTouch-1.2.0下面生成相应的文件。
3. 配置Xcode: http://doc.zeroc.com/display/Ice/Xcode+Plug-in#XcodePlug-in-AddingSliceFilestoanXcodeProject
    配置Xcode有两种方式:
           一种是使用ICE官方的SDK,
                  这种方式的好处是:
                          1. 不需要手动去处理.ice文件,只需要把.ice文件拖动到工程中,ICE的SDK的会自动处理.ice文件以生成该.ice文件对应的.h和.m文件。    
                          2. 不需要手动配置使用ice的头文件路径和库文件路径,这些东西ICE的SDK都已经配置好了。
                  这种方式的不足:  
                         使用这种方式,代码不能打包成静态库让别的工程调用,因为官方提供的SDK现在还不支持这种方式。
           另一种是不使用官方的SDK, 
                这种方式的好处是:
                        1. 使用ICE的的代码可以编译成静态库供别的工程使用。
                这种方式的不足是:
                          1. 需要手动去配置使用ICE需要的头文件路径、库文件路径以及在Other Link flag中指定链接标志。
                          2. 需要手动处理ice文件,并需要把处理ice文件后生成的.h和.m文件添加到工程中。
                          关于手动处理ice文件请参考4。
     下面分别进行说明:
      3.1 使用ICE官方的SDK:
            1. 设置Xcode的Build Settings->Additional SDKs的值为:$(DEVELOPER_DIR)/SDKs/IceTouch-1.2/$(PLATFORM_NAME).sdk
            2. 设置Xcode的Build Settings->Code Signing Resource Rules Path的值为:$(SDKROOT)/ResourceRules.plist
            3. 添加以下的框架:
                       CFNetwork.framework
                       Security.framework
                       Foundation.framework
                       ExternalAccessory.framework

3.2 不使用ICE官方的SDK
            1. 设置Xcode的Build Settings->Header search Paths值为: /Developer/SDKs/IceTouch-1.2.0/$(PLATFORM_NAME).sdk/usr/local/include

目前工程的目录设置:
           /usr/local/Cellar/icetouch36/3.6.1/lib/IceTouch/ObjC/$(PLATFORM_NAME).sdk/usr/include 
           /usr/local/Cellar/icetouch36/3.6.1/lib/IceTouch/ObjC/iphoneos.sdk/usr/include/objc/
            2. 设置Xcode的Build Settings->Library search Paths值为: /Developer/SDKs/IceTouch-1.2.0/$(PLATFORM_NAME).sdk/usr/local/lib
          目前工程目录的设置:
         /usr/local/Cellar/icetouch36/3.6.1/lib/IceTouch/ObjC/$(PLATFORM_NAME).sdk/usr/lib
            3. 设置Xcode的Build Settings->Other Linker Flags值为: -ObjC、-lGlacier2ObjC、-lIceObjC
4. 处理ice文件
       如果使用ICE官方的SDK配置Xcode,则不需要手动处理ice文件。 如果自己手动配置,则需要使用命令工具slice2objc处理ice文件。
       安装 IceTouch-1.2.1-Xcode-4.3.dmg 时,会将slice2objc安装到目录/Developer/SDKs/IceTouch-1.2.0/bin下。
       处理ice文件方式为:
              在命令行上执行:slice2objc  filename.ice
              执行这个命令后,会生成filename.h和filename.m文件。

Object-C使用ICE相关推荐

  1. C++使用ICE实现两台主机通信实例

    ice使用过程跟google protocol buffer.gsoap类似,都是先写一个类似配置文件的东西,然后使用提供的工具生成相应语言的代码. ice先写一个后缀名为.ice的文件,然后使用sl ...

  2. 详细教你如何部署ICE服务(二)---IceBox加载启动Ice服务

    在上一篇文章中,我使用了自己实现的一个简单容器简单粗暴的启动一个ICE服务,正如上篇文章所总结的那样,这种部署服务的方式存在诸多缺点. 这里我们给出使用IceBox这个框架来开发和部署我们的Ice服务 ...

  3. 详细教你如何部署ICE服务(三)---IceBox框架 Ice Registry服务注册中心的联合使用

    在详细教你如何部署ICE服务(二)---IceBox加载启动Ice服务这篇博客中,我们使用了IceBox来设计服务代码和启动Ice服务. 单单使用IceBox组件来设计和启动Ice服务,客户端必须将服 ...

  4. 现代JavaScript中的精美图案:制冰厂

    I've been working with JavaScript on and off since the late nineties. I didn't really like it at fir ...

  5. The Ice::Current Object

    The Ice::Current Object 服务器端Servant骨架方法(skeleton operation)都有一个Ice::Current类型的参数,这个对象定义如下: module Ic ...

  6. ICE BOX 配置,使用----第一篇

    一 理论部分 (1) 为什么要使用icebox? icebox server代替了通常的server. icebox是为了方便集中管理多个ice服务而建立的. 它通过使用icebox服务器,把ice服 ...

  7. Ice “Hello World”的实现

    2019独角兽企业重金招聘Python工程师标准>>> Ice简介: Ice (Internet Communications Engine),是一种面向对象的中间件平台,既然是平台 ...

  8. ZeroC ICE java异步实现方式(ami/amd)

    首先说说ami 和amd 的区别(以下为个人见解,仅供参考.如有疑问欢迎提出来) ami (异步方法调用): 仅仅基于ice 的同步方式扩展了异步的扩展方式,其他理念改动不大,使用起来好理解,但是服务 ...

  9. 谈谈自己对REST、SOA、SOAP、RPC、ICE、ESB、BPM知识汇总及理解

    2019独角兽企业重金招聘Python工程师标准>>> SOA: 维基百科解释:SOA:面向服务的软件架构(Service Oriented Architecture),是一种计算机 ...

  10. ZeroC ICE的远程调用框架 代理引用地址

    在官方文档中称为Binding,协议-地址对的绑定. 在Proxy模式中,一般地有三个参与者,Proxy,Subject以及RealSubject.Subject定义了Proxy(代理)和RealSu ...

最新文章

  1. Python 学习博客
  2. cmos 和 bios中断大全
  3. 软件测试方法单元测试例子,service单元测试例子
  4. 邮件服务器软件EwoMail 1.05 发布
  5. .NET/ASP.NET Routing路由(深入解析路由系统架构原理)
  6. 与粉丝们互动,街头霸王乐队带来AR应用《Gorillaz》
  7. this全面解析, 如何定位this指向,一文总结,再也不怕面试官追问啦
  8. 大学计算机专业全民,计算机专业大学排名实力顺序(上大学国内计算机专业大学哪个好值得报读)...
  9. 代码规范以及单元测试项目
  10. sql exists和not exists用法
  11. Linux中的文件权限
  12. 未捕获异常string was not recognized_给你代码:PHP7中的异常与错误处理
  13. 即时通讯IM的安全性比较
  14. python画函数图像 保留_如何使用python的matplotlib画反正切函数图像
  15. excel怎么将文本转为数值
  16. 百度搜索正式升级冰桶算法5.0!
  17. 精度、小数位数和长度
  18. MD5算法原理简要介绍并采用C#应用在桌面应用系统的用户登录与注册中
  19. 【Matlab数理统计知识点合集】新手入门第十三天
  20. vue 关于父组件同时多次调用子组件而产生的 this取值 的bug问题

热门文章

  1. IDC经营许可证申请办理指南
  2. STM32F103移植uCOS-III
  3. go语言 gin框架中集成zap日志库
  4. 迷你播放器--第一阶段(7)--安全攻防第一战--对抗反编译,代码混淆和对抗动态调试
  5. APP+springboot订餐APP 毕业设计源码190711
  6. MD5加密是什么?为什么不可解密?
  7. HCIE面试真题系列17(郝)
  8. 智商情商哪个重要_情商与智商,到底哪个更重要?
  9. Java自学教程!docker运行镜像无反应
  10. 在 Linux安装Dataiku DSS步骤