2013-02-16 48 views
0

我有一些自定義視圖,由於各種原因只能用nib實際設置。現在我想初始化這些筆尖,或者從這些筆尖創建視圖(對象)。這樣做與下面的代碼一起工作,但我不知道在生成這些方法時會調用哪些init方法。我不得不使用drawRect方法來做各種設置的東西。使用xib的視圖創建自定義類的實例

NSArray *bundleL = [[NSBundle mainBundle] loadNibNamed:@"nibName" owner:self options:nil]; 
        for (id object in bundleL) { 
         if ([object isKindOfClass:[MyClass class]]){ 
          myObject = (MyClass *)object; 
         } 
        } 

是什麼myObject = (MyClass *)object;之間的區別,這相對於myObject = [myClass alloc]initWithSomeMethod];迄今還沒有爲我工作「的作品」。

+0

這東西太基本被要求在這裏。在嘗試執行復雜任務之前,您需要正確學習C語言和Objective-C語言。如果你甚至不理解指針賦值和創建新實例的區別,那麼還有很多需要學習的東西**。 – 2013-02-16 09:29:34

+0

爲什麼這裏很難被問到?正如你已經表明的那樣,問題是可以回答的。 – jrturton 2013-02-16 09:32:42

回答

2

[[MyClass alloc] init]返回類的新實例:與XIB文件中的對象不同。 myObject = object;只是執行一個簡單的指針分配 - myObjectobject將指向內存中相同的對象。

1

做一個多一點調查,我覺得做我想要做的正確方法是如下:

CustomView *aview = [[[NSBundle mainBundle] loadNibNamed:@"CustomXib" owner:self options:nil]objectAtIndex:0]; 
[self.view addSubview:aview];