Objective c 使用来自另一个类的方法的数据更新视图
我正在尝试使用实用程序类的方法中的一些数据更新我的Objective c 使用来自另一个类的方法的数据更新视图,objective-c,ios,xcode,Objective C,Ios,Xcode,我正在尝试使用实用程序类的方法中的一些数据更新我的UIProgressView。 现在,就因为要更新我的UIProgressView,我在视图控制器类中保留了该方法,所以一切正常。因为我可以使用全局变量到达该方法中的循环,所以我可以更新我的进度。但是,如果我想将此方法移动到我的实用程序类中,我应该做什么来通知我的UIProgressView。谢谢。我的建议是将实用程序类重新设计为 下面是实用程序类的代码示例: UtilityClass.h文件: @interface UtilityClass :
UIProgressView
。
现在,就因为要更新我的
UIProgressView
,我在视图控制器类中保留了该方法,所以一切正常。因为我可以使用全局变量到达该方法中的循环,所以我可以更新我的进度。但是,如果我想将此方法移动到我的实用程序类中,我应该做什么来通知我的UIProgressView
。谢谢。我的建议是将实用程序类重新设计为
下面是实用程序类的代码示例:
UtilityClass.h文件:
@interface UtilityClass : NSObject
+ (UtilityClass *)sharedInstance;
- (CGFloat)awesomeMehod;
@end
实用类.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];
记住几件事:
- 这是一种可能的方法,我会去阅读各种 这也许有一天会派上用场
- 也许是一个更新知识的好主意
- 要使类成为一个合适的单例,还应该重写
方法,例如
,alloc
,init
,initWithZone
,dealloc
etc(如果使用ARC,覆盖方法的列表会有所不同),尽管release
会处理dispatch\u once
调用。现在,只要你“实例化”你的类就可以了 通过调用@synchronize()
class方法,您就可以了sharedInstance