0 / 0 / 0
Регистрация: 25.03.2011
Сообщений: 36
|
|
1 | |
Массивы (музыкальная программа)16.04.2012, 11:39. Показов 5387. Ответов 44
Метки нет (Все метки)
Привет всем, сразу скажу что я новичок, но необходимо сделать приложение и я потихонку изучаю шаг за шагом что к чему, задача у меня сделать приложение в котором человек бы брынчал по клавишам фортепиано, они в свою очередь должны запоминаться соответственно (нота,октава), после чего программа берет полученную последовательность нот и собирает из нее последовательность согласно аккордам, после чего проигрывает полученную последовательность по одной ноте.
Но остановился я на моменте забивания нажатых клавиш в массив. мне нужно как то объявить массив снаружи, а потом внутри действия нажатия каждой клавиши в него всякое добавлять последовательно, я попробовал insertObject atIndex не получается выводит пустой массив, сначала думал что проблема в переводе массива в строку и выводе, но потом понял что массив просто пустой, после некоторого колдовства обнаружил что если массив объявлять внутри IBAction{} то все нормально, в общем как то так, заранее спасибо)
0
|
16.04.2012, 11:39 | |
Ответы с готовыми решениями:
44
Музыкальная коллекция Музыкальная открытка на микроконтроллере Нужна музыкальная база даных Ищу энтузиастов - музыкальная база |
686 / 613 / 43
Регистрация: 13.01.2011
Сообщений: 1,722
|
|
16.04.2012, 11:54 | 2 |
Покажите код, это гораздо продуктивнее.
1
|
0 / 0 / 0
Регистрация: 25.03.2011
Сообщений: 36
|
||||||
16.04.2012, 12:40 [ТС] | 3 | |||||
0
|
686 / 613 / 43
Регистрация: 13.01.2011
Сообщений: 1,722
|
|||||||||||||||||||||
16.04.2012, 13:11 | 4 | ||||||||||||||||||||
Вариант - объявить его
PS> И читайте про систему подсчета ссылок. Раз уж не пользуетесь ARC. Обычная логика, если указатель на объект никто не держит - он может быть освобожден.
1
|
0 / 0 / 0
Регистрация: 25.03.2011
Сообщений: 36
|
||||||
16.04.2012, 14:04 [ТС] | 5 | |||||
0
|
686 / 613 / 43
Регистрация: 13.01.2011
Сообщений: 1,722
|
||||||
16.04.2012, 16:27 | 6 | |||||
Вы пытаетесь засунуть объект на индекс 1, учитывая что Ваш массив попросту пуст(0го элемента НЕТ).
Для обычного добавления объекта в конец массива используйте
1
|
0 / 0 / 0
Регистрация: 25.03.2011
Сообщений: 36
|
|
16.04.2012, 19:22 [ТС] | 7 |
zulkis, спасибо большое с массивом разобрался, но встала большая проблема которую я понятия не имею как решать, поскольку я инциализирую массив каждый раз когда захожу в sound это первая клавиша, то получается не совсем красивая картинка если я нажму подряд 7 клавиш а потом нажму первую то на выходе получу массив с единичкой внутри, поэтому я сначал подумал что надо создать Action внутри которого будут другие Action'ы но как я понял это невозможно, поэтому я не знаю что делать.
0
|
686 / 613 / 43
Регистрация: 13.01.2011
Сообщений: 1,722
|
|
16.04.2012, 20:35 | 8 |
Создайте объект notesArray в методе -init вашего класса. Он будет жив до вызова -dealloc, в котором вы его и -release.
Для этого: Прочитайте что такое метод init. Прочитайте про метод dealloc.
1
|
0 / 0 / 0
Регистрация: 25.03.2011
Сообщений: 36
|
|
16.04.2012, 21:23 [ТС] | 9 |
zulkis, dealloc насколько я знаю освобождает память после выполнения программы, а вот про инит я что-то не нахожу ничего, просто init много где встречается а конкретно метоа описание я не нашел пока, но продолжаю поиски)
Добавлено через 5 минут zulkis, это тот самый init
0
|
686 / 613 / 43
Регистрация: 13.01.2011
Сообщений: 1,722
|
|
17.04.2012, 01:51 | 10 |
Если это вопрос то да, он самый, вот в нем и создавайте Ваш массив нажатий.
А действия будут всего лишь писать туда (addObject);
1
|
0 / 0 / 0
Регистрация: 25.03.2011
Сообщений: 36
|
||||||
17.04.2012, 10:47 [ТС] | 11 | |||||
zulkis, сделал как написано в мануале
0
|
686 / 613 / 43
Регистрация: 13.01.2011
Сообщений: 1,722
|
||||||
17.04.2012, 15:00 | 12 | |||||
Какой феерический писец.
Уважаемый - init - он Инициализирует объект, который вы создаете.
1
|
0 / 0 / 0
Регистрация: 25.03.2011
Сообщений: 36
|
|
17.04.2012, 20:28 [ТС] | 13 |
zulkis, я конечно нуб, и программирую меньше недели, но после изменения инита ничего не изменилось, программа как возвращала пустой массив так и возвращает, не знаю что не так
0
|
686 / 613 / 43
Регистрация: 13.01.2011
Сообщений: 1,722
|
|
17.04.2012, 20:46 | 14 |
1
|
0 / 0 / 0
Регистрация: 25.03.2011
Сообщений: 36
|
||||||
17.04.2012, 20:48 [ТС] | 15 | |||||
zulkis,
0
|
686 / 613 / 43
Регистрация: 13.01.2011
Сообщений: 1,722
|
|
17.04.2012, 20:57 | 16 |
И что вы хотите сделать то? Я просто не понимаю где не так то что? Поставьте breakpointы в методы sound\1\2 и посмотрите что там у вас в массиве, после добавления объектов.
0
|
0 / 0 / 0
Регистрация: 25.03.2011
Сообщений: 36
|
|
17.04.2012, 21:14 [ТС] | 17 |
zulkis, суть в следующем при нажатии на клавиши соответствующие sound,sound2,sound3, воспроизводится звук и вместе с этим в массив забивается сначала номер клавиши 1,2,3 соответственно а затем номер октавы взятый с сегментКонтроллера, и для проверки я вывожу этот массив через label вместе с нажатием клавиши 3, так вот когда я перебросил инициализацию в инит массив выводится пустой, т.е была надпись Label при нажатии на 3ю клавишу она пропадает и все, когда же массив инициализировался в первой кнопке выводилась последовательность цифр, через запятую, но в случае повторного вызова первой кнопки массив перезаполнялся
0
|
686 / 613 / 43
Регистрация: 13.01.2011
Сообщений: 1,722
|
|||||||||||
17.04.2012, 21:22 | 18 | ||||||||||
Уберите из методов строчки
И если честно, я не уверен как себя поведет componentsJoinedByString: в этом случае. Вместо этого можете добавлять так:
0
|
0 / 0 / 0
Регистрация: 25.03.2011
Сообщений: 36
|
|
17.04.2012, 21:30 [ТС] | 19 |
zulkis, убрал, заменил все так же, да с этим не было проблем вроде добавляло все как надо, а вот инициализированный в ините массив отказывается видеть((
0
|
686 / 613 / 43
Регистрация: 13.01.2011
Сообщений: 1,722
|
|||||||||||
17.04.2012, 21:35 | 20 | ||||||||||
измените весь init на:
0
|
17.04.2012, 21:35 | |
17.04.2012, 21:35 | |
Помогаю со студенческими работами здесь
20
Музыкальная картотека в динамическом массиве Музыкальная коллекция. taglib treeview QAbstractItemModel Разработать консольное приложение с XML базой данных. Тема: музыкальная библиотека Массив структур "Музыкальная школа": вывести информацию по ученикам, играющим на заданном инструменте Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |