【问题标题】:Newbie. Custom class新手。自定义类
【发布时间】:2015-02-08 00:10:54
【问题描述】:

CustomClass *variableName = [[CustomClass alloc] init]; variableName.propertyName = @"Some text";

谁能用人类语言逐步解释这段代码?

如果我想向CustomClass 中的属性发送数据,我是通过varibaleName.propertyName 访问它,而不是通过CustomClass.propertyName。 我不明白。

如果我想将一些数据发送到 CustomClass 中的变量,那么在逻辑上显示该属性的路径 = CustomClass.propertyName = @"Some text"; 不是吗?

*variableName - 这是干什么用的?

我很困惑。

【问题讨论】:

    标签: objective-c class variables alloc


    【解决方案1】:

    在实例和类之间的区别上似乎有些混淆。尝试将此类复杂的想法与现实世界的示例联系起来通常会更好。

    Class 可以是 Cars。因此,您有一个 Car 类。它将包括所有汽车共享的信息。例如,它可以有一个“模型”名称,而不是 propertyName。要访问任何给定汽车的数据,您必须首先创建它。这就是你在第一行所做的:CustomClass *variableName = [[CustomClass alloc] init];

    在我们的示例中,我们将编写 Car *myCar = [[Car alloc] init]; 来创建一个新的 Car 对象,我们称之为 myCar。然后,你可以说myCar.model = "Civic"。我们不想让所有汽车都成为“Civic”,特别是我们创建的myCar。 不要将描述一般类型对象的类和表示对象本身的实例混淆。

    希望您现在了解问题的最后一部分:

    *variableName - 它是干什么用的?

    这意味着您有一个对您的CustomClass 实例的引用,该实例称为variableName。在我们的示例中,这是 myCar,然后您可以对其进行操作或更改。

    【讨论】:

    • Car *myCar = [[Car alloc] init]; - 创建一个名为 myCar 的新 Car 对象。但是如果是:Car myCar = [[DifferentCar alloc] init];会有什么区别呢?我知道[[XX alloc] init];是用来创建一个新对象的,但是XX在那里做什么呢?
    • @Edgar 其他人也可能对此感到困惑。继续在一个单独的问题中提出这个问题。
    【解决方案2】:

    您访问的是variableName.propertyName 而不是CustomClass.propertyName,因为variableName 是该类的一个实例,而CustomClass 是该类本身,而不是您使用的对象。

    例如,您有 2 个CustomClass 对象,比如说variable1variable2variable1.propertyNamevariable2.propertyName 不同,因为它们是类的不同实例,而不是类本身。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-31
      • 2017-08-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多