我正在試圖檢查一個類是否已經在iOS中實例化。如果它已經實例化,那麼我想釋放它。檢查一個類是否已經在iOS中實例化了
像
for (UIView* views in self.view.subviews) {
if ([views isKindOfClass:[CCGLView class]])
[views removeFromSuperview];
}
對於那個時候我已經知道年代它是某種UIViews,但我要如何檢查其他類?
我正在試圖檢查一個類是否已經在iOS中實例化。如果它已經實例化,那麼我想釋放它。檢查一個類是否已經在iOS中實例化了
像
for (UIView* views in self.view.subviews) {
if ([views isKindOfClass:[CCGLView class]])
[views removeFromSuperview];
}
對於那個時候我已經知道年代它是某種UIViews,但我要如何檢查其他類?
我想檢查一下,如果一個類已經在iOS中實例化。
你不需要。 Objective-C允許你消息無任何不良副作用。此外,子視圖不允許爲零,因爲它們被添加到內部的NSMutableArray中,反過來,它不允許將零指針添加到它自己。
因爲這是當我已經知道這是一種UIViews,但我如何檢查其他類?
如果你正在尋找釋放每一個的UIView(以及相關的子類),你並不需要在您的比較具體,看到基類(UIView的)是宣佈removeFromSuperview中,其中一個反過來,解決您的問題的釋放部分。當一個視圖從它的超級視圖中刪除時,它的引用計數減1。
現在我有了更多的上下文,你要求的是微不足道的。如果您使用的是ARC,此處的代碼片段將查找CustomClass
類型的所有對象,然後將它們設置爲零。
for (NSObject *object in self.someCollection) {
if ([object isKindOfClass:[CustomClass class]])
object = nil;
}
如果你使用MRC(如果你是,你到底是怎麼了?),那麼你應該,事實上,檢查它作爲一個積極的實例。
for (NSObject *object in self.someCollection) {
if ([object isKindOfClass:[CustomClass class]] && object != nil) {
[object release];
}
}
? Message nil如何檢查這個?我不太清楚。給出一兩行代碼來澄清。 –
不,你在想這個太難。你不需要檢查一個對象是否爲零,因爲你可以消息零!如果你想發送無刪除超級視圖,你可以。 – CodaFi
不,MyClass不是View類,它是某種類。無法刪除FromSuperview。 –
入住這https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ObjCRuntimeRef/Reference/reference.html – iDev
你並不需要檢查。你可以在ObjC中消息零。 – CodaFi
我正在尋找代碼示例。 –