我正在尝试使用我的实用工具类的方法更新我的UIProgressView
。
现在,只是因为更新我的UIProgressView
,我在视图控制器类中持有该方法,一切正常。因为我可以使用全局变量到达该方法的循环,所以我可以更新我的进度。但是,如果我想将此方法移动到我的实用程序类中,我应该做些什么来通知我的UIProgressView
。感谢。
答案 0 :(得分:1)
我建议将您的实用程序类重新设计为singleton
以下是您的实用程序类的代码示例:
UtilityClass.h文件:
@interface UtilityClass : NSObject
+ (UtilityClass *)sharedInstance;
- (CGFloat)awesomeMehod;
@end
UtilityClass.m
@implementation UtilityClass
+ (id)sharedInstance
{
static UtilityClass *_instance;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
_instance = [[UtilityClass alloc] init];
});
return _instance;
}
- (id)init
{
self = [super init];
if (!self) return nil;
// Regular initialization, however keep in mind that it will be executed just once
return self;
}
- (CGFloat)awesomeMethod
{
return 42.0f
}
@end
现在,您可以从视图控制器中调用
CGFloat progress = [[UtilityClass sharedInstance] awesomeMethod];
[self.progressView setProgress:progress];
请记住以下几点:
这是一种可能的方法,我会去阅读各种各样的方法 design patterns可能会在某一天派上用场
要使课程成为合适的单身人士,您也应该覆盖
alloc
,init
,initWithZone
,dealloc
,release
等方法
等等(如果你使用ARC,覆盖的方法列表会有所不同)here is
an example这样做,尽管dispatch_once
照顾
@synchronize()
致电。就目前而言,只要您“实例化”您的课程
通过调用sharedInstance
类方法,你会没事的。