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

Objective-C

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

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

09.04.2014, 23:11. Просмотров 947. Ответов 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     Копирование объектов
Посмотрите здесь:

Пересечение объектов - Objective-C
Как узнать пересекаются ли 2 объекта типа SKSpriteNode?

Последовательность создания объектов - Objective-C
Подскажите пожалуйста. У меня есть класс отвечающий за загрузку данных по url и дата класс которые кушает словарь, который подгрузил класс...

Хранение объектов в массиве - Objective-C
Добрый вечер! Стоит задача: создать матрицу с задаваемыми размерами строки и столбца и провести над ней операцию. При выполнении задания...

Проверка на удаление объектов - Objective-C
Привет всем. Пишу в Obj C совсем недавно. Интересно проверить не утекает ли где память. Как это можно сделать?

Хранение WEAK объектов в массиве - Objective-C
Иногда возникает ситуация хранить в массиве просто указатели на объекты, таким образом, чтобы счетчик их ссылок при таком хранении не...

Копирование объектов - Delphi
Здравствуйте. Мне необходимо сделать следующее: Поясняю: Есть у меня объекты (выделены зеленым) и есть кнопка &quot;Добавить новое...

копирование объектов - C#
Подскажите,пожалуйста, как мне сделать копию объекта. Имеем obj1, хочу сделать obj2==obj1 при присвоении obj2=obj1 присваивается ссылка...

Копирование объектов из WORD - Delphi
Возможно ли скопировать обьекты(кружечки и тд) из WORD-файла на форму приложения? Ведь мы можем записывать эти объекты в файл с указанием...

Копирование GDI объектов - C++ WinAPI
Речь скорее не о копировании самих объектов и их ресурсов для создания других объектов GDI. Есть функция GetObject, но она лишь...

Копирование объектов std::thread - C++
В учебнике Энтони Уильямса есть простой пример класса scoped_thread, присоединяющего поток в деструкторе: class scoped_thread { ...

Глубокое копирование объектов с интерфейсами - C#
Подскажите пожалуйста, если класс наследует интерфейсы, то как реализовать его глубокое копирование. Проблема в том что в интерфейсах не...

Копирование объектов ссылочного типа - C#
Необходимо скопировать Items одного ListView в другой ListView. По идеи, копирование самих объектов должен осуществлять метод...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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     Копирование объектов
Ответ Создать тему
Опции темы

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