gpt4 book ai didi

objective-c - 使用另一个类的方法中的数据更新 View

转载 作者:行者123 更新时间:2023-11-29 04:28:59 28 4
gpt4 key购买 nike

我正在尝试使用实用程序类的方法中的一些数据更新我的UIProgressView。现在,只是因为为了更新我的 UIProgressView,我在 View Controller 类中保留了该方法,并且一切正常。因为我可以使用全局变量到达该方法中的循环,所以我可以更新我的进度。但是,如果我想将此方法移至我的实用程序类,我应该做什么来随时了解我的 UIProgressView。谢谢。

最佳答案

我建议将您的实用程序类重新设计为 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

现在您将在 View Controller 中调用

CGFloat progress = [[UtilityClass sharedInstance] awesomeMethod];
[self.progressView setProgress:progress];

记住几件事:

  • 这是一种可能的方法,我会去阅读各种 design patterns有一天也许会派上用场

  • 刷新关于 view controllers and the way they interact 的知识可能是个好主意

  • 为了使类成为正确的单例,您还应该重写方法,例如 allocinitinitWithZonedeallocrelease等(如果您使用 ARC,要覆盖的方法列表将会有所不同),here isan example这样做,尽管 dispatch_once 负责@synchronize() 调用。现在,只要您“实例化”您的类(class)即可通过调用 sharedInstance 类方法就可以了。

关于objective-c - 使用另一个类的方法中的数据更新 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11965329/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com