0

我有一些自定义视图,由于各种原因,实际上只能使用笔尖进行设置。现在我想初始化这些笔尖,或者从这些笔尖创建视图(对象)。使用下面的代码这样做是可行的,但我不知道在生成这些 init 方法时会调用哪些方法。我不得不使用 drawRect 方法来做各种设置工作。

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];到目前为止对我不起作用。

4

2 回答 2

2

[[MyClass alloc] init]返回该类的一个新实例:一个不同于 XIB 文件中的对象。myObject = object;只需执行简单的指针分配 -myObject并将object指向内存中的相同对象。

于 2013-02-16T09:28:28.133 回答
1

做更多的调查,我认为做我想做的事情的正确方法如下:

CustomView *aview = [[[NSBundle mainBundle] loadNibNamed:@"CustomXib" owner:self options:nil]objectAtIndex:0];
[self.view addSubview:aview];
于 2013-02-17T02:44:24.040 回答