Форум программистов, компьютерный форум, киберфорум
Наши страницы

Objective-C

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
eoLithic
0 / 0 / 0
Регистрация: 05.01.2013
Сообщений: 32
#1

Создание объекта в цикле - Objective-C

27.03.2013, 03:01. Просмотров 1468. Ответов 9
Метки нет (Все метки)

Здравствуйте. Я пишу небольшую карточную программу и у меня возникли небольшие трудности по поводу создания объекта в цикле.
Я почти уверен, что в коде ниже у меня ошибка. Я хочу, чтобы в каждом цикле у меня создавалась новая карта и ее адрес в памяти отправлялся в массив. Но видимо я буду присваивать разные значения одной и той же карте, и в результате у меня будет массив с 52 элементами, которые указывают на один и тот же адрес. У этой карты будет значение suit = 3 и rank = 12;
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
-(id) init
{
    if ( self = [super init] )
    {
        deck = [[NSMutableArray alloc] initWithCapacity:52];
        Card *newCard = [[Card alloc] init];
        
        for ( int suit = 0; suit < 4; suit++ )
            for ( int rank = 0; rank < 13; rank++ )
            {
                newCard.suit = suit;
                newCard.rank = rank;
                [deck addObject:newCard];
            }
        [newCard release];
    }
    return self;
}
Что будет если я изменю немного код и сделаю как ниже: будет ли каждый раз выделяться новый участок памяти и создаваться разные карты?
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
-(id) init
{
    if ( self = [super init] )
    {
        deck = [[NSMutableArray alloc] initWithCapacity:52];
        
        for ( int suit = 0; suit < 4; suit++ )
            for ( int rank = 0; rank < 13; rank++ )
            {
                Card *newCard = [[Card alloc] init];
                newCard.suit = suit;
                newCard.rank = rank;
                [deck addObject:newCard];
                [newCard release] // а надо ли делать релиз каждый раз в конце цикла?
            }
        [newCard release];
    }
    return self;
}
Заранее спасибо. А тем кто пошлет в гугл: умрите.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.03.2013, 03:01
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создание объекта в цикле (Objective-C):

Создание объекта - Objective-C
Всем доброго вечера, подскажите: NSTimeZone *timeZone = init]; timeZone = ; Это одно и тоже? Либо я всё правильно сделал: ...

Создание объекта в функции и возврат объекта из нее - C++
Не могу разобраться с ссылками. Возможно ли вернуть из функции объект созданный в стеке при этом копи конструктор публичный. ...

Объяснить поведение объекта std::cin в цикле while - C++
#include&lt;iostream&gt; #include&lt;string&gt; #include&lt;cstdlib&gt; #include&lt;windows.h&gt; using namespace std; int main(){ char i; char...

Создание переменных в цикле - C++
Здравствуйте. Возможно ли сделать как-то так? ... for (int i=1; i &lt; 10; i++) { ... int a &lt;i&gt;; ...

Создание графика в цикле - C# ASP.NET
Помогите кто знает как передать в график данные в цикле, если писать этот код для одной буквы то работает, а что бы сразу все в цикле не...

Создание объектов в цикле for - Java SE
Добрый день! Подскажите пожалуйста, как создавать объекты с уникальным именем в цикле for? Вот пример того, что я хочу сделать: ...

9
mobidevelop
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
27.03.2013, 14:22 #2
Цитата Сообщение от eoLithic Посмотреть сообщение
Что будет если я изменю немного код и сделаю как ниже
Хорошо будет. Вот прямо что надо, то и будет. А если еще и 16-ю строку убрать, он даже падать перестанет.

PS.
Цитата Сообщение от eoLithic Посмотреть сообщение
А тем кто пошлет в гугл: умрите.
Ну зачем же просьбу о помощи завершать хамством и негативом?
1
eoLithic
0 / 0 / 0
Регистрация: 05.01.2013
Сообщений: 32
27.03.2013, 14:49  [ТС] #3
mobidevelop,
Привык, что обязательно найдется умник, который пошлет в гугл.

Спасибо за помощь.
0
zulkis
683 / 610 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
27.03.2013, 17:51 #4
Цитата Сообщение от mobidevelop Посмотреть сообщение
он даже падать перестанет.
Спасибо, поржал.

Цитата Сообщение от eoLithic Посмотреть сообщение
Привык, что обязательно найдется умник, который пошлет в гугл.
Ну так гугл это то место, в котором новичок должен обитать. Помимо сайта документации. А пожелать "умереть", как верно заметил mobidevelop, не очень хорошее начало общения на форуме, позиционирующее Вас как неадекватного человека в первую очередь.

P.S Понимания не жду, но искренне надеюсь
0
eoLithic
0 / 0 / 0
Регистрация: 05.01.2013
Сообщений: 32
27.03.2013, 21:28  [ТС] #5
zulkis,
Порой бывает достаточно трудно сформулировать вопрос именно так, чтобы гугл понял. + не забываем, что ответы в гугле не просто так берутся: добрые люди, которые не страдают отправкойвгуглфилией, пишут ответы и гугл их находит.
0
mobidevelop
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
27.03.2013, 22:00 #6
На правах доброго человека, уже написавшего тут не один ответ, хочу робко добавить голос в поддержку
zulkis. Все-таки где-то в чем-то он прав, как мне кажется...
С другой стороны, если бы никто не спрашивал, то:
1. Гуглу было бы негде искать
2. Мне было бы нечем развлекаться ;-)
0
zulkis
683 / 610 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
28.03.2013, 10:31 #7
eoLithic, исходя из личного опыта, я Вам точно могу сказать - по вашему вопросу в гугле как минимум 3 страницы ответов сразу будет(учитесь формулировать вопросы, в чем проблема то?). Однако то, что Вы сразу идете спрашивать, не пытаясь самостоятельно найти решение(исходя из Вашего негатива в сторону "посылов в гугл" я пришел к такому выводу), не дает Вам бонуса, ибо отвечать в 50й раз что 2+2=5, а не 4, людям в большинстве своем просто лень. Да и зачем отвечать человеку, который "Испробовал не все варианты"(с).

Была замечательная статья на Хабре по поводу - "А что Вы попробовали перед тем, как прийти и задать вопрос?".
Советую ознакомиться. Если конечно не лень искать будет.

Добавлено через 1 минуту
mobidevelop, насчет обитания в гугле - тенденция сейчас такая. Быстрее найдешь, нежели побежишь в книжный, а потом еще рыться в книжке. Технологии слишком быстро меняются.
0
mobidevelop
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
28.03.2013, 13:31 #8
zulkis, да знаю я ) Если вы заметили, я тут только один вопрос пока задал. Слепота навалилась, бывает
Просто эпистолярный жанр плохо иронию передает
0
eoLithic
0 / 0 / 0
Регистрация: 05.01.2013
Сообщений: 32
28.03.2013, 17:09  [ТС] #9
Люди задают вопросы на форумах, чтобы услышать ответ.
Какова цена священнику, который на каждый вопрос будет отвечать фразой "В Библии ищи ответ."?
0
mobidevelop
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
28.03.2013, 21:39 #10
Аналогия не корректна. Священнику деньги платят и всячески уважают, к мнению его авторитетному прислушиваются. Пошлет в библию, пойдут читать. А на форумах чаще срач разводят, который даже диспутом не назовешь. Вероятно, мы наблюдаем рождение еще одного. Сбегаю за пивком и вернусь. Без меня не покусайтесь
0
28.03.2013, 21:39
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.03.2013, 21:39
Привет! Вот еще темы с ответами:

Создание переменных в цикле - C#
Подскажите пожалуйста как в теле цикла создать переменные и записать туда данные мне нужно типа такого string number1 ; ...

Создание потоков в цикле - C#
Помогите пожалуйста разобраться в следующей ситуации: Создаю в цикле 10 потоков от 0 до 9 Вывожу в каждом потоке цифры от 0 до 9 ...

Создание массива в цикле - PHP
Нужно в цикле создавать массивы и потом их объединить в один. Вот такой код: $arr = array(); for($q=0; $q&lt; 10; $q++){ ...

Создание кнопок в цикле - C#
Мне нужно создать кнопки в приложение в цикле. Код примерно такой: Объявляем переменную: int hmb = 16; И потом нужно...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

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