监听所有观点

时间:2016-04-04 09:27:10

标签: ios objective-c

很抱歉这是一个微不足道的(我想)问题,但我在ios和objective-c的编程方面经验非常少,所以我不能自己想象如何在一个地方做一些方法为我的所有视图控制器工作(我不希望通过在我的所有类中粘贴此方法来增加代码)。它是一种简单的方法,它将在后台线程中连接到服务器并从中接收一些数据。编写这个方法我只需要弄清楚如何使它适用于所有视图控制器而不需要乘法代码。

2 个答案:

答案 0 :(得分:2)

你有一些选择:

  • 创建UIViewController的子类,并定义自定义类的所有ViewControllers子类,而不是UIViewController
  • 使用方法
  • 创建UIViewController类别
  • 使用声明为类方法的方法创建一个类:

E.g:
ConnectionManager.h

+ (NSArray *) getData;

ConnectionManager.m

+ (NSArray *) getData{
    //method implementation
}

你可以从你的视图控制器中调用它:

[ConnectionManager getData]

最后一个选项的变体是创建一个singleton对象。

答案 1 :(得分:0)

对于所有视图控制器"执行此操作似乎很奇怪。连接到网络以获取数据对我来说似乎是每个视图控制器特有的。

无论如何,你可以在一个类别中做这样的事情。

@implemnetation UIViewController (MyDataConnection)

- (void)thisIsYourMethodHere {
    // do your networking stuff here.
}

@end

和...

[self thisIsYouMethodHere];

这意味着在任何视图控制器中都可以执行...

regionprops()

它将运行类别中的代码。