新手。自定义 class

Newbie. Custom class

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

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

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

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

*variableName - 它有什么用?

我很困惑。

实例和 class 之间的区别似乎有些混淆。通常最好尝试 link 像这样的复杂想法到现实世界的例子。

例如,

A Class 可以是汽车。因此,您有一辆汽车 class。它将包括所有汽车共享的信息。例如,可以使用 "model" 名称代替 propertyName。要访问有关任何给定汽车的数据,您必须首先创建它。这就是您在第一行所做的:CustomClass *variableName = [[CustomClass alloc] init];

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

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

*variableName - what is it for?

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

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

例如,您有 2 个 CustomClass 对象,假设 variable1variable2variable1.propertyName 将不同于 variable2.propertyName,因为它们是 class 的不同实例,而不是 class 本身。