簡體   English   中英

Objective C自定義類方法未被調用

[英]Objective C custom class methods not being called

所以我有這個自定義類只有一個測試方法,它執行nslog。 我將在我的應用程序中多次重用此方法。 界面看起來像這樣。

@interface TestViewController: UIViewController {  CMImageMover * imageMover }

然后在視圖中加載I:

imageMover = [[CmImageMover alloc] init];

如果我做:

[imageMover testMethod];

在alloc和init之后,它在viewDidLoad函數中工作,但是如果我從視圖控制器中的另一個函數再次調用它,則沒有任何工作,並且不會調用類方法。

我在這做錯了什么。 每個其他var我聲明像NSArray / NSTimer,我說的方式,我能夠訪問並在我的控制器中使用它。

當你說“如果我從視圖控制器中的另一個函數再次調用它沒有任何作用”時,首先檢查的是你發送testMethod 它可能是零,在這種情況下不會發生任何事情。 在目標C中發送消息給nil什么都不做。 添加NSLog以查找,例如

 NSLog(@"imageMover object is: %@", imageOver);
 [imageMover testMethod]; 

如果NSLog顯示它是零 - 或者說是瘋狂的東西 - 那么用imageMover ivar跟進你正在做的事情。

你在問題中提到了一個類方法,但是不要在你的代碼片段中引用它。

如果您已將testMethod定義為類方法,那么當您將該消息發送到實例時,它將失敗。 (它會失敗吵鬧。)類方法會像這樣介紹:

 + (void) testMethod
 {
       NSLog(@"CMImageMover testMethod called on Class");
 }

將引入一個實例方法,如下所示:

 - (void) testMethod
 {
       NSLog(@"testMethod called on an instance of CMImageMover");
 }

如果這對您來說非常明顯並且忽略了問題的重點,那道歉。 問題所在的問題並不清楚。

暫無
暫無

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

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