• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 如何访问已激活 plist 的程序集?

[复制链接]
菜鸟教程小白 发表于 2022-12-13 05:37:44 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

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



Best Answer-推荐答案


您可以通过注入(inject)程序集来访问程序集。您可以为 App Delegate 定义一个特殊情况定义,如 shown in the Typhoon example application :

- (PFAppDelegate *)appDelegate
{
return [TyphoonDefinition withClass:[PFAppDelegate class]     
    configuration:^(TyphoonDefinition *definition)
    {
        //Inject the assembly
        [definition injectPropertyselector(assembly)
            with:self];

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

。 .或者您也可以将程序集注入(inject)到任何其他 Typhoon 创建的组件中。这对于使用 factory pattern 从一个对象图进行到另一个对象图很有用。 .

  • 请注意,对于 App Delegate(或在 Typhoon 之外创建的其他对象),属性和方法注入(inject)可以正常工作,但当然不支持初始化程序注入(inject)。此外,您不能缩小对象的范围,也就是说,在声明为原型(prototype)的 Typhoon 之外创建的单例将保持为单例。
  • 另外请注意,如果您愿意,您可以使用协议(protocol)支持您的程序集,这样就不必将您的类直接耦合到 Typhoon。

通过 plist 集成引导的程序集也是绑定(bind)到您的初始/主 Storyboard 的程序集,因此任何 auto-injection将满足在您的 Storyboard上创建的 View Controller 上定义的属性。这包括一个程序集类型属性,例如:

@property(nonatomic, strong) InjectedClass(MyAssembly) assembly; 

this feature is here 的文档.

关于ios - 如何访问已激活 plist 的程序集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28847478/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap