Форум программистов, компьютерный форум, киберфорум
Objective-C
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 02.12.2017
Сообщений: 2

Исправить код с добавлением в плейлист

02.12.2017, 17:13. Показов 3119. Ответов 2

Author24 — интернет-сервис помощи студентам
Добрый день!
Помогите, пожалуйста, разобраться.
Задача такая: муз плеер. создать плейлисты(мьют массивы) с треками на выбор, создать мастер библиотеку(мьют массив) с со всеми треками.
В методе addSongToPlaylist добавляю в массив arrayPlaylist и в массив masterLibriary трек (s). Но в массив masterLibriary трек не добавляется. Массив masterLibriary вообще нил, когда в него начинают добавлятся треки, хотя при инициализации он не нил...
Не могу понять почему не работает следующий код (часть проекта).

Objective-C Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
@interface Playlist : NSObject
@property (strong, nonatomic) NSString *masterLibName;
@property (strong, nonatomic) NSString *playlistName;
@property (strong, nonatomic) NSMutableArray *arrayPlaylist;
@property (strong, nonatomic) NSMutableArray *masterLibriary;
 
-(void) addSongToPlaylist: (Song *) s;
-(id) initPlaylistWithName: (NSString *) name;
-(id) initMasterLibriaryWithName: (NSString*) name;
@end
 
@implementation Playlist
@synthesize masterLibName, playlistName;
@synthesize arrayPlaylist, masterLibriary;
 
-(id) initMasterLibriaryWithName:(NSString *)name{
    self = [super init];
    if (self) {
        masterLibName = [NSString stringWithString: name];
        masterLibriary  = [NSMutableArray array];
    }
    return self;
}
 
-(id) initPlaylistWithName: (NSString *) name{
    self = [super init];
    if (self) {
        playlistName = [NSString stringWithString: name];
        arrayPlaylist = [NSMutableArray array];
    }
    return self;
}
 
-(instancetype) init{                                           
    return [self initPlaylistWithName:@"NOName"];
}
 
-(void) addSongToPlaylist: (Song*) s{
    [masterLibriary addObject: s];
    [arrayPlaylist addObject:s];
 
 
int main(int argc, const char * argv[]) {
    @autoreleasepool {
        Playlist * playlist1 = [[Playlist alloc] initPlaylistWithName:@"First playlist"];
        Playlist * playlist2 = [[Playlist alloc] initPlaylistWithName:@"Second playlist"];
        Playlist * playlist3 = [[Playlist alloc] initPlaylistWithName:@"Third playlist"];
        
        Playlist *masterLibCollection = [[Playlist alloc] initMasterLibriaryWithName:@"Master Libriary"];
 
        [playlist1 addSongToPlaylist:s1];
        [playlist2 addSongToPlaylist:s2]; [playlist2 addSongToPlaylist:s3];
        [playlist3 addSongToPlaylist:s4]; [playlist3 addSongToPlaylist:s5]; [playlist3 addSongToPlaylist:s6];
}
@end
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.12.2017, 17:13
Ответы с готовыми решениями:

Модифицировать код добавлением if и else
Доброго времени cуток! Помогите модифицировать код. Требуется добавить if и else помогите это сделать. Даю два примера кода. ...

Скажите, пожалуйста, как исправить исправить код в процедуре
задание такое :Дан одномерный массив. Переместить нулевые элементы массива в начало, сдвинув остальные элементы вправо. Помогите понять,...

Код, который включает/выключает светодиоды на клавиатуре. Исправить код
Есть код, который включает/выключает светодиоды (Caps Lock, Num Lock и Scroll Lock) по нажатию любой клавиши. Компилятор TurboC 2.0 в...

2
67 / 67 / 19
Регистрация: 13.07.2015
Сообщений: 219
02.12.2017, 19:01
Свойство masterLibriary инициализируется только в initMasterLibriaryWithName, в главном коде вызывается initPlaylistWithName, у объекта которого вызывается addSongToPlaylist, которым используется nil-объект.

Однако странная у класса Playlist обязанность, пересмотрите свой код, возможно понадобится разделить на два класса задачу.
1
0 / 0 / 0
Регистрация: 02.12.2017
Сообщений: 2
02.12.2017, 19:34  [ТС]
Спасибо за ответ!
Все понял.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.12.2017, 19:34
Помогаю со студенческими работами здесь

Как вставить div в PHP код (в echo) - исправить код
Народ как вставить div в php код точнее в echo В этот код:<?php //отсеивание $dir = "MP3 PLAYER/"; //задаём имя...

как исправить код на динамический массив-код уже написан только на статическом
#include <iostream> #include <iostream> #include "string.h" using namespace std; const int N = 100; //максимальна длина...

Код не отображает картинку с камеры. Исправить код
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using...

Нужно исправить код. Комментарии добавляются в guestbook.txt, а сам код находится в guestbook.php
Написал такой код для комментирования страницы. Однако 1 коммент отправляется пустым, вместо 2-ого - отправляется 1 комент, всесто 3 -...

Исправить код
После ввода слов, если в конце ставлю пробел, вылетает ошибка. И при вводе буквы есть тоже проблемы. using System; using...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Антипаттерны микросервисной архитектуры
ArchitectMsa 03.04.2025
Хорошо спроектированная микросервисная система может выдержать испытание временем, оставаясь гибкой, масштабируемой и устойчивой к большинству проблем. Такая архитектура обладает высоким уровнем. . .
std::mutex в C++: Советы и примеры использования
bytestream 03.04.2025
std::mutex - это механизм взаимного исключения, который гарантирует, что критический участок кода выполняется только одним потоком в каждый момент времени. Это простое, но могущественное средство. . .
Не удержался от оценки концепции двигателя Стирлинга.
Hrethgir 03.04.2025
Сколько не пытался - она выдавала правильные схемы, причём случайно рисовала горячие области в середине, холодные по краям, трубки с краёв в низ и магнит в соединяющей, но при этой выдавала описание. . .
Метод с двумя буферами (или double buffering) или ping-pong buffering
Hrethgir 02.04.2025
Из ответов LM модели. Метод, который предполагает использование двух массивов для хранения промежуточных результатов сложения векторов, обычно применяется в сценариях, где необходимо минимизировать. . .
На любовном киберфронте
Alexander-7 01.04.2025
Недавно на одном малоизвестном сайте знакомств мною заинтересовалась девушка: «Текст немного странный. Но, судя по адресу почты, иностранка», – подумал я. Поколебавшись пару суток, я ответил ей:. . .
Как работает Node.js изнутри
run.dev 29.03.2025
Node. js изменил подход к разработке веб-приложений, позволив использовать JavaScript не только на стороне клиента, но и на сервере. Созданный в 2009 году Райаном Далем, этот открытый,. . .
Моки в Python: Mock Object Library
py-thonny 29.03.2025
Тестирование кода требует особого подхода, когда речь идёт о компонентах, взаимодействующих с внешним миром. Мы часто сталкиваемся с непредсказуемостью HTTP-запросов, чтением данных из базы или. . .
JavaScript: Управление памятью и улучшение производительности
run.dev 29.03.2025
В отличие от низкоуровневых языков программирования, JavaScript не требует ручного выделения и освобождения памяти. Здесь работает автоматический сборщик мусора, который определяет, какие объекты. . .
Мультитенантная архитектура со SpringBoot и PostgreSQL
ArchitectMsa 29.03.2025
SaaS-приложения редко обслуживают одного клиента и обычно они должны поддерживать множество организаций, каждая из которых работает в своём изолированном пространстве. Мультитенантная архитектура. . .
std::span в C++: Производительность и лучшие практики
NullReferenced 28.03.2025
std::span — одно из самых недооценённых нововведений стандарта C++20, которое радикально меняет подход к работе с непрерывными последовательностями данных. По сути, это невладеющее представление. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер