2013-09-25 39 views
2

我有一個方法使用一個NSTimer調用另一個:的NSTimer - 更新用戶信息

NSNumber *value = {NSNumber numberWithInt:5]; 
myTimer = [NSTimer scheduledTimerWithTimeInterval: 0.02 
              target: self 
             selector: @selector(configGroup:) 
             userInfo: value 
              repeats: YES]; 

我希望能夠更新用戶信息,但沒有爲它的制定者。如果不爲該課程創建另一個ivar,有沒有辦法在計時器中更新此信息?

明顯簡單的方法是隻需添加伊娃,但我有一堆這些排序的方法和我的伊娃名單是有點ridiculous.`

感謝 - GW

回答

3

使userInfo一個可變的類,如NSMutableDictionary。這將允許您修改字典內容。

+0

完全工作!沒想到會的。 謝謝你一堆 –

1

沒有看到你的代碼的其餘部分,很難建議替代伊娃。然而,如果你班上的學生數量變得荒謬可笑,這是一個更普遍問題的表現 - 你的班級做了太多事情!

您應該構建您的代碼,以便每個類都有一個獨特的目的。這將顯着減少每個類中的代碼量,以及支持此代碼所需的ivars數量。

+0

這些都在我的委託類中。我正在將OSC消息發送給其他程序,並且必須等待回覆。這意味着一個有點廣泛的功能必須分成許多部分,其中第2部分不會啓動,直到第二個程序告訴我它已完成第1部分中的所有內容爲止。因此,NSTimer調用另一個方法。 –

+0

此外,我不想發佈我所有的代碼,因爲它大約有989行代碼:) 我讓它變得更加簡潔,但之後發送太多的消息到第二個程序並且數據被丟棄或它會使第二個程序崩潰。 –