2015-09-05 10 views
5

NSBundle sınıfının loadNibNamed sınıfının nasıl çalıştığını bilirim; Bazı belgelerde, dönüş değeri olmadanAmaç C: loadNibNamed yöntemi: nasıl çalışır?

[[NSBundle mainBundle] loadNibNamed:@"mynib" owner:self options:NULL]; 

gibi bir şey buluyorum; Sadece bir yöntem içinde çağrılır (örneğin, hücremi özelleştirmek isterseniz cellForRowAtIndexPath). diğer belgeler ise bulduğum: cellForRowAtIndexPath örneğin Bu durumda

NSArray* vett=[[NSBundle mainBundle] loadNibNamed:@"mynib" owner:self options:NULL]; 

, ben böyle

return [vett lastObject]; 

falan olabilir. İkinci yöntem bana açık görünüyor; Uçu bir vektöre yükledim ve sonra vektör elemanlarını kullanıyorum. Sorun tam olarak ilk ne anlamaktır:

[[NSBundle mainBundle] loadNibNamed:@"mynib" owner:self options:NULL]; 

benim kalem ucunun nesnelerdir hiçbir dönüş değeri, hiçbir hücre başvurusu ...? nasıl ele alınır?

NSArray * arr =[[NSBundle mainBundle] loadNibNamed:@"CustomView" owner:self options:nil]; 
    CustomView * customView = [arr firstObject]; 
+2

[Bu API için iOS belgeleri] 'den daha iyisini söyleyemem (https://developer.apple.com/library/ios/documentation/UIKit/Reference/NSBundle_UIKitAdditions/#//apple_ref/occ/instm/NSBundle/loadNibNamed: owner: options :) veya [özel bir görünüm ayırma konusunda bu bölümden daha iyi bir genel bakış] (https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CocoaViewsGuide/SubclassingNSView /SubclassingNSView.html#//apple_ref/doc/uid/TP40002978-CH7-SW20) –

cevap

5

Örneğin, özel kalem ucu @ "CustomView" ile alt sınıf UIView var nasıl çalıştığını anlamıyorum uçtaki nesneler. Örneğin özel bir görünüm oluşturmak istiyorsanız, dönüş değerini anthu'nun tarif ettiği şekilde kullanmak isteyeceksiniz.

NSArray * arr =[[NSBundle mainBundle] loadNibNamed:@"CustomView" owner:nil options:nil]; 
CustomView * customView = [arr firstObject]; 

Eğer (bu yöntemi olan bir sahip geçirebilirsiniz unutmayın) dosyanın sahibini yapılandırmak için xib kullanmak istiyorum ancak, döndürülen dizinin ilginizi olmayabilir. Örneğin. Xib, dosyanın sahibinin IBActions ve IBOutlet'lerini xib içindeki öğelere bağlar.

[[NSBundle mainBundle] loadNibNamed:@"mynib" owner:self options:nil]; 

Ayrıca iki yaklaşımı birleştirebiliriz.