我正在试图弄清楚如何集中我在一些ViewControllers中使用的方法。我已经有了一个我用于某些变量的单例。我把单身类叫做Shared。
我将我的方法移到了共享类,并试着像这样调用它:
m.createdAt = [Shared getUTCFormateDate:[messageObject objectForKey:@"created_at"]];
它给了我一个例外,说当选择器在尝试调用它时不存在。
我已经导入了Shared.h。任何其他想法将不胜感激。
答案 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]
;
享受