首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何访问已激活的程序集?

如何访问已激活的程序集?
EN

Stack Overflow用户
提问于 2015-03-04 05:51:51
回答 1查看 588关注 0票数 2

我正在转换一个项目,以使用plist集成台风。我可以看到,我添加到TyphoonInitialAssemblies键的程序集正在被激活,但在我不知道如何访问已激活的程序集之后。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-04 09:15:07

您可以通过注入程序集/它们来访问程序集。您可以将App的特例定义定义为如Typhoon示例应用程序所示

代码语言:javascript
复制
- (PFAppDelegate *)appDelegate
{
return [TyphoonDefinition withClass:[PFAppDelegate class]     
    configuration:^(TyphoonDefinition *definition)
    {
        //Inject the assembly
        [definition injectProperty:@selector(assembly)
            with:self];

        //Inject other properties
        [definition injectProperty:@selector(window)
            with:[self mainWindow]];
        [definition injectProperty:@selector(cityDao) 
            with:[_coreComponents cityDao]];            
    }];
}

。。或者您也可以将程序集注入到任何其他Typhoon创建的组件中。这对于使用工厂模式从一个对象图转到另一个对象图非常有用。

  • 请注意,对于App (或在Typhoon之外创建的其他对象),属性和方法注入将很好地工作,但当然不支持初始化程序注入。你也不能缩小一个对象的范围,也就是说,一个在台风之外被声明为原型的单例,将仍然是一个单例。
  • 还请注意,如果您愿意,可以使用协议备份程序集,因此没有必要直接将类耦合到Typhoon。

通过plist集成引导的程序集也是绑定到初始/主情节提要的程序集,因此您在故事板上创建的视图控制器上定义的任何自动注入属性都将得到满足。这包括一个程序集类型属性,例如:

代码语言:javascript
复制
@property(nonatomic, strong) InjectedClass(MyAssembly) assembly; 

这个特性就在这里的文档。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28847478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档