我在整个应用中使用UIAlertView
警告有关互联网连接问题。现在,我创建了一个新的,并在每次需要时显示。我的应用程序是一个有很多类和交互性的大应用程序,因此,我非常关注性能。我已经在一些地方看到,人们用所有UIAlertViews
创建一个类只是为了在需要时显示它们,现在,这将使我的代码更有条理,但是因为我将不得不每次都实例化该类的对象。
我已经有一个singleton
课程,我的问题是:我应该在我的单身人士上创建一个方法alloc, init
并显示我的alerts
吗?或者甚至将警报保存在property
上,这样我就不需要实例化一个新警报了?如果我将它保存到property
,它将在我的应用程序的整个生命周期中记忆,对吧?所以我不确定这是不是一个好主意。
我的问题是:关注性能和代价较低的代码,这里最好的方法是什么?
答案 0 :(得分:1)
将所有警报都放在一个地方是很好的,但是不要使用单例模式,只需创建 static / 类方法。
除非你经常发出警告,否则你可能不应该这样做,将UIAlertView
对象留在内存中没有任何好处。分配和初始化UIAlertView
对象的成本不是您应该担心的。
答案 1 :(得分:0)
你可以写一个为你做一些事情的AlertMessenger
。但也许你的要求不仅仅是这个例子。
AlertMessenger.h
@interface AlertMessenger : NSObject
+ (void)showMissmatchAlertWithTitle:(NSString*)title;
// will be called with predefined texts from the methods above
+ (void)showAlertWithTitle:(NSString*)title
withMessage:(NSString*)message
withCancelText:(NSString*)cancelText;
@end
AlertMessenger.m
#import "AlertMessenger.h"
@implementation AlertMessenger
+ (void)showMissmatchAlertWithTitle:(NSString*)title {
[self showAlertWithTitle:title
withMessage:NSLocalizedString(@"nothing_found",@"")
withCancelText:NSLocalizedString(@"close",@"")];
}
+ (void)showAlertWithTitle:(NSString*)title
withMessage:(NSString*)message
withCancelText:(NSString*)cancelText {
UIAlertView *alert= [[UIAlertView alloc] initWithTitle:title
message:message
delegate:nil
cancelButtonTitle:cancelText
otherButtonTitles:nil];
[alert show];
}
@end
如果你认识到一个不匹配(在我的例子中)你可以写:
[AlertMessenger showMissmatchWithTitle:@"Search"]