1

我在需要从其他类访问的类“loadingViewController”上有一个函数。我第一次调用如下函数时,它可以工作,但如果我从另一个类再次调用它,不要因为再次分配它并重置参数。如果我创建一个实例方法也是如此。如何简单地从另一个类调用一个函数而不进行初始化或再次分配?可能是基本的新手问题...谢谢。

类在标题中声明并正确合成。

self.loadingController = [[loadingViewController alloc] initWithNibName:@"loadingViewController" bundle:nil];
[loadingController incrementProgress:0.1];
4

4 回答 4

2

在没有看到更多代码的情况下很难确定,但我认为您只需要确保只初始化loadingController一次:

if ( self.loadingController == nil ) {
    self.loadingController = [[loadingViewController alloc] initWithNibName:@"loadingViewController" bundle:nil];
}
[self.loadingController incrementProgress:0.1];
于 2012-04-12T19:15:30.237 回答
1

你可以protocols在这里实现。协议用于从一个类调用另一个类的方法。一般来说,它将定义您的类将实现的方法集。要查看如何实现它,您可以看到这个答案

于 2012-04-12T19:20:33.920 回答
1

我会这样做:

-(void) loadingViewController
{
    if ( self.loadingController == nil ) {
        self.loadingController = [[loadingViewController alloc] initWithNibName:@"loadingViewController" bundle:nil];
    }
    [self.loadingController incrementProgress:0.1];
}

并确保您没有从主 UI 线程以外的任何其他线程调用 [xyz loadingViewController]。

于 2012-04-12T19:36:04.267 回答
0

看起来您想在视图控制器上调用函数的原因是向用户展示长时间操作的进度。

更常见的方法是让视图控制器开始操作,然后观察它的进度,相应地更新视图。

于 2012-04-12T19:44:45.873 回答