Форум программистов, компьютерный форум CyberForum.ru

Objective-C

Войти
Регистрация
Восстановить пароль
 
kievkao
42 / 42 / 2
Регистрация: 22.11.2012
Сообщений: 225
#1

Копирование объектов - Objective-C

09.04.2014, 23:11. Просмотров 919. Ответов 1
Метки нет (Все метки)

Добрый день!

Обнаружил, что я не понимаю каких-то очень базовых вещей. Был бы очень рад, если бы мне подсказали
Столкнулся с такой ситуацией, и не могу сам себе объяснить, почему происходит именно так:

Допустим, у меня есть два объекта моего класса. Я хочу заменить значение полей одного из них - значениями другого.
Когда я выполняю следующую тупую операцию, то ожидаемого эффекта нет:
Objective-C
1
object1 = object2;
А если вот так, то все происходит корректно:
Objective-C
1
2
3
object2.field1 = object1.field1;
object2.field2 = object1.field2;
...
Не могу понять, почему происходит именно так?
В первом случае, как я понимаю, мы говорим, что указатель <object1> будет теперь указывать на ту же область памяти, куда и <object2>.
Т.е. в этой области памяти находятся как раз все данные объекта <object2>, и, установив указатель на эту область, мы, вроде как, должны иметь возможность обращаться ко всем хранящимся там значениям..

Буду очень рад подсказкам, в чем я ошибаюсь. А то аж страшно ловить себя на мысли, что не понимаю основ
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.04.2014, 23:11     Копирование объектов
Посмотрите здесь:

копирование объектов C#
Delphi Копирование объектов из WORD
Проверка на удаление объектов Objective-C
Delphi Копирование объектов
C# Копирование объектов ссылочного типа
Копирование объектов пользовательских классов C++ Builder
Objective-C Пересечение объектов
Objective-C Хранение WEAK объектов в массиве
Objective-C Последовательность создания объектов
Objective-C Хранение объектов в массиве
Копирование объектов std::thread C++
Копирование GDI объектов C++ WinAPI

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
10.04.2014, 07:43     Копирование объектов #2
Цитата Сообщение от kievkao Посмотреть сообщение
заменить значение полей одного из них - значениями другого
Вот так многие значения полей поместить в одно поле другого объекта? Занятно
Цитата Сообщение от kievkao Посмотреть сообщение
object1 = object2;
А "1" и "2" не нужно местами поменять?
Ибо вы сами сказали что так все хорошо:
Цитата Сообщение от kievkao Посмотреть сообщение
object2.field1 = object1.field1;
И если вы заменяете "поля" - заменяйте их. Ибо если вы присвоите указатели - объект-то не изменится...
Цитата Сообщение от kievkao Посмотреть сообщение
В первом случае, как я понимаю, мы говорим, что указатель <object1> будет теперь указывать на ту же область памяти, куда и <object2>.
На "начало" этой области.
Вы меняете указатели, и в первом случае object1 будет указывать туда же, куда и object2.
Цитата Сообщение от kievkao Посмотреть сообщение
Т.е. в этой области памяти находятся как раз все данные объекта <object2>
Говоря по-простому, да.
Ну так вы и сможете обращаться. Все, что доступно для object2 будет тем же самым и для object1 после такой операции:
Цитата Сообщение от kievkao Посмотреть сообщение
object1 = object2;
Yandex
Объявления
10.04.2014, 07:43     Копирование объектов
Ответ Создать тему
Опции темы

Текущее время: 10:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru