2015-02-08 1 views
0

CustomClass *variableName = [[CustomClass alloc] init]; variableName.propertyName = @"Some text";Новичок. Таможенный класс

Может ли кто-нибудь объяснить этот код шаг за шагом на человеческом языке?

Почему я хочу отправить данные в собственность в CustomClass Я обращаюсь к ней через varibaleName.propertyName, но не через CustomClass.propertyName. Я не могу этого понять.

Если я хочу отправить некоторые данные в varibale в CustomClass, не было бы логично показать путь к этому свойству = CustomClass.propertyName = @"Some text";?

*variableName - что это для?

Я смущен.

ответ

1

Кажется, что существует некоторая путаница в различии между экземпляром и классом. Как правило, лучше попытаться связать сложные идеи, подобные этим, с реальными примерами.

A Класс мог бы, например, быть Автомобили. Таким образом, у вас есть класс автомобилей. Он будет включать информацию, общую для всех автомобилей. Например, вместо того, чтобы иметь свойствоName, оно может иметь «модельное» имя. Чтобы получить доступ к данным о любом автомобиле, вы должны сначала создать его. Это то, что вы делаете в первой строке: CustomClass *variableName = [[CustomClass alloc] init];

В нашем примере мы напишем Car *myCar = [[Car alloc] init];, который создает новый объект Car, который мы называем myCar. Затем вы можете сказать myCar.model = "Civic". Мы не хотим, чтобы все автомобили были «гражданскими», а конкретно myCar, которые мы создали. Не путайте между классом, который описывает общий вид объекта, и экземпляр, который является самим объектом.

Надеюсь, теперь вы понимаете последнюю часть вашего вопроса:

* имяПеременной - что это?

Это означает, что у вас есть ссылка на экземпляр вашего CustomClass, который называется variableName. В нашем примере это myCar, который затем можно манипулировать или изменять.

+0

'Автомобиль * myCar = [[Car alloc] init];' - создает новый объект Car с именем myCar. Но если это так: 'Car myCar = [[DifferentCar alloc] init];' В чем разница? Я знаю, что '[[XX alloc] init];' предназначен для создания нового объекта, но что там делает XX? – Edgar

+0

@ Edgar другие также могут быть смущены этим. Идите вперед и задайте это по отдельному вопросу. –

1

Вы получаете доступ к variableName.propertyName вместо CustomClass.propertyName, потому что variableName является экземпляром класса, в то время как CustomClass является сам класс, а не объект, который вы используете.

Например, у вас есть 2 CustomClass объектов, скажем variable1 и variable2. variable1.propertyName будет отличаться от variable2.propertyName, потому что это разные экземпляры класса, а не сам класс.

 Смежные вопросы

  • Нет связанных вопросов^_^