簡體   English   中英

來自另一個類的objective-c調用函數

[英]objective-c call function from another class

我在類“loadViewController”上有一個函數,需要從其他類訪問。 我第一次調用函數如下,它可以工作,但如果我再從另一個類調用它不要因為再次分配它並重置參數。 如果我創建一個實例方法,則相同。 如何簡單地從另一個類調用一個函數而不用init或再次分配? 可能是基本的新手問題......謝謝。

class在頭文件中聲明並正確合成。

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

很難說沒有看到更多的代碼,但我想你只需要確保你只初始化一次loadingController

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

您可以在此處實施protocols 協議用於從一個類調用另一個類的方法。 通常,它將定義您的類將實現的方法集。 要了解如何實現它,您可以看到這個答案

我會這樣做:

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

並確保不要從主UI線程以外的任何其他線程調用[xyz loadingViewController]。

看起來您想要在視圖控制器上調用函數的原因是向用戶呈現長操作的進度。

更常見的方法是讓視圖控制器啟動操作,然后觀察它的進度,相應地更新視圖。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM