调用公共方法

时间:2011-04-30 13:08:15

标签: iphone objective-c ios4 public-method

我正在试图弄清楚如何集中我在一些ViewControllers中使用的方法。我已经有了一个我用于某些变量的单例。我把单身类叫做Shared。

我将我的方法移到了共享类,并试着像这样调用它:

m.createdAt = [Shared getUTCFormateDate:[messageObject objectForKey:@"created_at"]];

它给了我一个例外,说当选择器在尝试调用它时不存在。

我已经导入了Shared.h。任何其他想法将不胜感激。

2 个答案:

答案 0 :(得分:1)

如果您的类名为“Shared”,那么您似乎正在尝试调用类方法而不是实例方法。因此,您需要使用+而不是 - 。

声明方法

答案 1 :(得分:0)

这是在objective-c中创建Singleton的正确模式:(我使用User对象的一个​​例子......取自我在我面前打开的代码)。另请注意,Singleton类和Static Class方法之间存在差异,如此处所述.. Difference between static class and singleton pattern?

<。>在.h文件中,声明一个返回类的实例的静态方法。

+(User *) currentUser;
<。>在.m文件中,创建一个包含实例的静态变量

static User * _user;

然后,在.m类中,创建返回或实例化并返回静态变量的“公共”静态访问者GET

+ (User *) currentUser
    {

        if (!_user) 
        {
            _user =[[User alloc]init];
            // ... init the singleton user properties and what not
            // ...
        }

        return _user;   

    }

然后,当您想要调用Singleton类时,只需确保导入User.h并调用[[User currentUser] someMethodorProperty];

享受