【问题标题】:Create an instance of a custom class with views from an xib使用来自 xib 的视图创建自定义类的实例
【发布时间】:2013-02-01 06:15:13
【问题描述】:

我有一些自定义视图,由于各种原因,实际上只能使用笔尖进行设置。现在我想初始化这些笔尖,或者从这些笔尖创建视图(对象)。使用下面的代码这样做是可行的,但我不知道在生成这些 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]; 有什么区别?

【问题讨论】:

  • 这太基本了,不能在这里问。在尝试执行复杂任务之前,您需要正确学习 C 和 Objective-C 语言。如果您甚至不了解指针分配和创建新实例之间的区别,那么还有 很多 的东西需要学习。
  • 为什么在这里问太基本了?正如您所展示的那样,这个问题是可以回答的。

标签: ios objective-c cocoa-touch xib


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2012-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多