2012-07-13 38 views
5

benim denetleyicisi dışına benim Görünüm almak için şu kodu kullanın:Özel bir sınıfsa, NSViewController'ın Görünümünü alma?

CollectionItemView *myView = [self view]; 

Bu oldukça iyi çalışıyor, ama uyarıyı Incompatible pointer types initializing CollectionItemView __strong with an expression of type NSView olsun. Bunu neden anladığımı anlıyorum ama görmezden gelmek ya da görünüm özelliğini üzerine yazmam mı gerekiyor? Eğer [self view]CollectionItemView olduğundan eminseniz

ayna

cevap

2

sadece yapın:

CollectionItemView *myView = (CollectionItemView*)[self view]; 

veya (daha iyi olan) kullanabilirsiniz:

id myView = [self view]; 
0

üzerine yazmak gerek yoktur o. troolee zaten iki çalışma çözümü önerdi. Ancak, sadece kaydetmek için farklı bir kod istiyorum. Eğer nesne türü CollectionItemView veya alt sınıflarından herhangi olmalıdır bağlamdan kesin bildiğinde

CollectionItemView *myView = nil; 
if ([[self view] isKindOfClass:[CollectionItemView class]) 
    self.view = (CollectionItemView*)[self view]; 

isKindOfClass testi olmadan kısa versiyonu tamam.