如何在iOS中创建全局方法?

时间:2014-11-04 10:30:17

标签: ios objective-c methods global

我正在尝试重构我的代码,使用对URL的POST请求,解析JSON并执行许多有用的东西。不幸的是,我需要在多个视图控制器中多次使用它。实现这一目标的最佳方法是什么?

我找到了变量的工作解决方案(每个VC中使用的全局变量)。 .m文件看起来像:

#import "DataClass.h"

@implementation DataClass
@synthesize str;
@synthesize credits;
@synthesize points;
@synthesize globalName;
@synthesize questionsCount;
@synthesize wrongQuestionsCount;
@synthesize correctQuestionsCount;

static DataClass *instance = nil;

+(DataClass *)getInstance
{
    @synchronized(self)
    {
        if(instance==nil)
        {
            instance= [DataClass new];
        }
    }
    return instance;
}

每次我使用getInstance方法调用数据类对象来使用/修改变量。 该方法现在获得少量NSString参数并且还返回NSString。

所以我的问题是..我可以使用同一个类使我的callPostURL方法全局并且可用于我的应用程序中的每个VC吗? 我应该使用DataClass还是有更好的解决方案?

1 个答案:

答案 0 :(得分:-1)

您可以使用内联静态方法让它随处可用。

例如,在你的AppDelegate.h中,创建一个这样的函数,你可以在任何地方使用它。

static inline BOOL myTestMethod(NSString *aString, NSInteger anInteger) {
    ...
}

然后在您的实施中,您将其称为:BOOL rep = myTestMethod(@"foo", 1);
不要忘记在您要使用该功能的文件中#import您的标题。