Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa touch 可以在所有其他类中使用的全局类_Cocoa Touch_Design Patterns - Fatal编程技术网

Cocoa touch 可以在所有其他类中使用的全局类

Cocoa touch 可以在所有其他类中使用的全局类,cocoa-touch,design-patterns,Cocoa Touch,Design Patterns,我已经在一个特定的视图控制器中成功地在我的应用程序中实现了IAD,我想将它们放在我的许多其他视图控制器中。为每个视图控制器反复编写相同的iAd代码似乎是多余的。我希望能够将所有这些IAD代码放在一个类中,并在需要时调用它。所以我听说过一些叫做helper类和类方法(+)的东西,但我不确定这是否是我所需要的。谁能把我引向正确的方向?举个例子会很有帮助 编辑 我创建了一个没有视图控制器的单例类,我认为这是正确的。无论如何,在iAd实现中,有许多代码行包括添加子视图,例如 [self.view add

我已经在一个特定的视图控制器中成功地在我的应用程序中实现了IAD,我想将它们放在我的许多其他视图控制器中。为每个视图控制器反复编写相同的iAd代码似乎是多余的。我希望能够将所有这些IAD代码放在一个类中,并在需要时调用它。所以我听说过一些叫做helper类和类方法(+)的东西,但我不确定这是否是我所需要的。谁能把我引向正确的方向?举个例子会很有帮助

编辑

我创建了一个没有视图控制器的单例类,我认为这是正确的。无论如何,在iAd实现中,有许多代码行包括添加子视图,例如

[self.view addSubview:adView]; 

singleton告诉我它不识别“视图”。因此,当我从其他视图控制器调用singleton时,是否需要将视图传递给singleton?谢谢你

你想分享什么?从描述中可以看出,您似乎对重用实现(而不是各种全局数据/状态)最感兴趣。为此,可以使用一个类的多个实例


当然,您可能希望关注该类的接口,以便它能够与必须使用它的视图和控制器进行良好的交互(以通用方式——特殊情况应保留在适当的控制器中)。

您的新类iAd singleton确实没有视图;因此,您无法从那里访问一个

我建议,与其将视图控制器的视图传递给iAd类,不如让您的VCs请求广告。类似如下:

// SomeViewController
// Maybe this is viewDidLoad? It's wherever you are ready to 
// incorporate the ad into your view.
- (void) arrangeViewIncludingAds
{
    // Do other setup

    UIView * adView [[iAdSingleton sharedIAd] adWithParameters:infoToSelectAnAppropriateAdForThisVC];
    [self.view addSubview:adView];

    // Continue setup
}

我不确定你是否想改变每个VC的广告;我只是添加了这个想法。

我已经删除了您的免责声明;问题应该只包含技术内容。避免因问你认为太基本的问题而受到指责的最好方法不是道歉,而是做一些研究并询问结果。例如,您是否在SO上搜索了问题中的关键术语@好的,谢谢你。除了你发给我的主要是指全局变量,我不确定我要找的是什么?我希望能够访问所有东西好吧,我没有说那是完全正确的搜索——这只是一个建议。不过,这里有一个提示:寻找有关“单身”的信息。事实上,我很惊讶你还没有五个答案建议使用单例。@W'rknconter单例?从没听说过这些。我会调查的。非常感谢。如果你想留下你的评论作为回答,我会接受。如果你得到5个答案,建议一个单身,你会得到至少12个说单身是邪恶的,你应该使用依赖注入。这是一个很好的观点。我只是建议“单身”给亚历克斯一个起点。谢谢贾斯汀。我会接受,但是@W'RKNCANCENTER从帖子一开始就给了我反馈,但我感谢你的意见