zoukankan      html  css  js  c++  java
  • OC-Objection 学习笔记之一:简单的开始

    Objection 统一管理对象的引用问题,我想这就是这种技术的意义吧。

    废话不说,咱们直接上步骤吧:

    1:协议

    我们的意识里要知道,一切围绕协议来进行。

    下面的协议是一个视图的协议,该协议简单到不能再简单了。

    它并未暴露任何变量和接口,只是为了引用该协议对应的视图。

    @protocol SearchViewCtrlProtocol<NSObject>
    @end 



    我倾向于把一个协议单独写到一个文件里。

    然后,再把所有的协议引用到同一个文件里。

    最后,把该文件作为全局文件放到pch里面。

    这里面遵循的原则就是:协议是共享的。

    2:协议对应的类实现

    在该例子中就是一个视图,当然要遵循该协议。

    3:注册协议对应的类

    Objection既然是要解决对象的引用问题,那么通过协议,它要把对象注册进来。

    怎么实现?

    3.1:Objection通过JSObjectionModule来实现。

    @interface SearchViewCtrlModule : JSObjectionModule 
    @end 
     
    @implementation SearchViewCtrlModule 
    - (void)configure 
    { 
        [self bindClass:SearchViewCtrlModule class] toProtocol:@protocol(SearchViewCtrlProtocol)]; 
    } 
    @end 
    

    3.2:添加进Objection:

    JSObjectionInjector *injector = [JSObjection defaultInjector];
    injector = injector ? : [JSObjection createInjector];
    injector = [injector withModule:[[SearchViewCtrlModule alloc] init]];
    [JSObjection setDefaultInjector:injector];
    

      

    4:使用

    JSObjectionInjector *injector = [JSObjection defaultInjector];
    UIViewController <SearchViewCtrlProtocol> *vc = [injector getObject:@protocol(SearchViewCtrlProtocol)];
  • 相关阅读:
    Asp.net MVC FluentHTML and Fluent Interface
    Linux上安装Sybase
    Oracle PL/SQL开发利器Toad应用总结(一)PL/SQL Program基本编写、调试
    ELMAH——可插拔错误日志工具
    用SQLMonitor监视SQL*Net
    如何得到自增id值
    SQL Server ID自增列重新从1开始算起
    加载TreeView并设置复选框
    编程设置最小化、最大化、关闭按钮 相关讨论
    在 VB.NET 编程中使用数组
  • 原文地址:https://www.cnblogs.com/SimonGao/p/4830604.html
Copyright © 2011-2022 走看看