我正在爲我的iPhone應用程序開發一個類,我希望它註冊並瞭解應用程序狀態更改(UIApplicationDidEnterBackgroundNotification
等)。有沒有辦法註冊一個類的通知,而不必在內存中保存一個實例化的對象?我只是想讓適當的通知調用這個類來初始化,做一些事情,然後再次離開內存。我可以註冊NSNotifications類嗎?我可以在NSNotifications中使用類方法嗎?
現在我已經中init方法如下:
[[NSNotificationCenter defaultCenter] addObserver: self
selector: @selector(handleEnteredBackground)
name: UIApplicationDidEnterBackgroundNotification
object: nil];
而且這種方法在其他地方類的.m文件:
- (void) handleEnteredBackground {
NSLog(@"Entered Background"); }
我applicationDidLoad
下一次實例化類,但由於我沒有做任何事情,所以我認爲ARC會在內存中殺死對象,當我關閉它時,應用會崩潰(沒有任何有用的錯誤代碼,請介意)。如果我將handleEnteredBackground
切換爲帶有「+」號的類方法,則在關閉應用程序時會出現無效的選擇器錯誤。
最終目標是在應用程序的生命週期中實例化一個類,讓它能夠響應應用程序狀態更改,而無需在類之外添加任何其他代碼。假設iOS 5 + Xcode 4.2+
這聽起來像一個偉大的解決方案......我給它一個鏡頭和接受的答案,一旦我有機會嘗試一下出來了! – Amos 2012-02-15 22:49:14
沒問題。如果您有更多問題,請在此寫下。 – hwaxxer 2012-02-15 23:10:11