Форум программистов, компьютерный форум, киберфорум
Наши страницы
Objective-C
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Novichok2
0 / 0 / 0
Регистрация: 13.04.2013
Сообщений: 16
#1

Скобочки)

14.04.2013, 18:30. Просмотров 669. Ответов 8
Метки нет (Все метки)

Доброго времени суток!
Беру данные из интернета паршу их в итоге получается массив, потом я преобразовываю его в NSString:
Objective-C
1
NSString* data_1 = [data description];
Получается строка: (
(
9
)
)
Подскажите пожалуйста как убрать эти скобки? Буду очень благодарен!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.04.2013, 18:30
Ответы с готовыми решениями:

Требуются скобочки
if Key.Text = ("3724-1923-2132-7542-9073") { this.Hide(); Main fr2 = new...

Зачем нужны скобочки?
Объясните пожалуйста зачем надо ставить в коде так много скобок?...

Задачка про скобочки
всем привет. каочи давно давно решал чета задачку про имеем строку с цыфрами...

Найти скобочки () в строке текста
Дан текстовый файл f, содержащий программу на языке Паскаль. Проверить эту...

Про скобочки в request, jquery ajax
Здравствуйте, пишу ajax запрос для выбора и удаления элементов таблицы:...

8
zulkis
684 / 611 / 43
Регистрация: 13.01.2011
Сообщений: 1,724
14.04.2013, 19:23 #2
Objective-C
1
NSString *string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
1
Vorona
Peace 2 all shining faces
672 / 534 / 84
Регистрация: 05.03.2010
Сообщений: 1,283
14.04.2013, 19:24 #3
смотрите, обычно массив в методе description будет представлен так:
Код
(val1, val2, val3, val4)
если использовать такую конструкцию
Objective-C
1
[[array valueForKey:@"description"] componentsJoinedByString:@" "]
то он будет представлен так:
Код
val1 val2 val3 val4
в вашем случае элементом массива является тоже массив, потому что конечный элемент окружен двумя парами скобок, потому даже если и используете вышеуказанную конструкцию, то получите что-то вроде:
Код
val1 (val11, val12, val13) val2 val3 val4
я бы написал рекурсивный метод, который принимает массив и возвращает строку, далее в foreach проходит по каждому элементу массива и выписывает его в строку, которую вернет, если элементом массива является массив, тогда он вызывает сам себя и передает ему этот элемент-массив, а полученное значение добавляет в строку и идет дальше

так вы получите строку из массива, в нужном вам формате и при том, что элементами массива могут быть массивы с любым уровнем вложенноти этих злобных массивов
1
Novichok2
0 / 0 / 0
Регистрация: 13.04.2013
Сообщений: 16
14.04.2013, 19:51  [ТС] #4
Цитата Сообщение от zulkis Посмотреть сообщение
Objective-C
1
NSString *string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
Получается пустой объект.....
0
Vorona
Peace 2 all shining faces
672 / 534 / 84
Регистрация: 05.03.2010
Сообщений: 1,283
14.04.2013, 20:00 #5
Цитата Сообщение от Novichok2 Посмотреть сообщение
Получается пустой объект.....
просто тут ожидают увидеть объект типа NSData, а у вас, как я понял - NSArray
код должен быть читабельным, а вы своим кодом сбиваете с толку других программистов и получаете не тот ответ

как видите, сами же и пострадали из-за своей оплошности
0
Novichok2
0 / 0 / 0
Регистрация: 13.04.2013
Сообщений: 16
14.04.2013, 20:25  [ТС] #6
Цитата Сообщение от Vorona Посмотреть сообщение
смотрите, обычно массив в методе description будет представлен так:
Код
(val1, val2, val3, val4)
если использовать такую конструкцию
Objective-C
1
[[array valueForKey:@"description"] componentsJoinedByString:@" "]
то он будет представлен так:
Код
val1 val2 val3 val4
в вашем случае элементом массива является тоже массив, потому что конечный элемент окружен двумя парами скобок, потому даже если и используете вышеуказанную конструкцию, то получите что-то вроде:
Код
val1 (val11, val12, val13) val2 val3 val4
я бы написал рекурсивный метод, который принимает массив и возвращает строку, далее в foreach проходит по каждому элементу массива и выписывает его в строку, которую вернет, если элементом массива является массив, тогда он вызывает сам себя и передает ему этот элемент-массив, а полученное значение добавляет в строку и идет дальше

так вы получите строку из массива, в нужном вам формате и при том, что элементами массива могут быть массивы с любым уровнем вложенноти этих злобных массивов
Могли бы вы дать ссылку на какой-нибудь пример рекурсивного метода? Я что-то сам не могу найти, а с этим первый раз сталкиваюсь.
0
Vorona
Peace 2 all shining faces
672 / 534 / 84
Регистрация: 05.03.2010
Сообщений: 1,283
14.04.2013, 21:11 #7
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
- (NSString *)stringFromArray:(NSArray *)array
{
    NSMutableString *arrayString = [NSMutableString string];
    NSString *separator = @", ";
    
    for (id item in array)
    {
        if ([item isKindOfClass:NSArray.class])
        {
            // рекурсивно вызываем метод
            [arrayString appendFormat:@"{%@}%@", [self stringFromArray:(NSArray *)item], separator];
        }
        else
        {
            [arrayString appendFormat:@"%@%@", item, separator];
        }
    }
    
    //ну и подчистим разделители в хвосте
    return arrayString.length > 0 ? [arrayString substringWithRange:NSMakeRange(0, arrayString.length - separator.length)] : arrayString;
}
таким образом из массива:
Objective-C
1
NSArray *array = [NSArray arrayWithObjects:@8, @3, @1, [NSArray arrayWithObjects:@4, [NSArray arrayWithObjects:@7, @"Hello", @"World", nil], @0, nil], @9, @6, @5, [NSArray arrayWithObjects:@2, nil], nil];
получится что-то вроде
Код
8, 3, 1, {4, {7, Hello, World}, 0}, 9, 6, 5, {2}
p.s код на коленке набросал, если что подправите, но должен работать
1
Novichok2
0 / 0 / 0
Регистрация: 13.04.2013
Сообщений: 16
14.04.2013, 21:40  [ТС] #8
Цитата Сообщение от Vorona Посмотреть сообщение
просто тут ожидают увидеть объект типа NSData, а у вас, как я понял - NSArray
код должен быть читабельным, а вы своим кодом сбиваете с толку других программистов и получаете не тот ответ

как видите, сами же и пострадали из-за своей оплошности
Не не я сконвертировал в NSData
Objective-C
1
NSData* data_1 = [NSKeyedArchiver archivedDataWithRootObject:data];
Всё удачно преобразовалось в NSData
0
zulkis
684 / 611 / 43
Регистрация: 13.01.2011
Сообщений: 1,724
15.04.2013, 06:28 #9
"data - это array". Тьфу блин жесть.
И чтото я вывод видать невнимательно смотрел. Конечно же там не NSData, а NSArray, как уже выше сказал Vorona.
0
15.04.2013, 06:28
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.04.2013, 06:28

Найти максимум из 2-х значений, используя только скобочки и стрелочки
Выглядит издевательски, но максимум действительно находит и стрелочек таких и...

Ругается на else из 11 строчки. Где скобочки не хватает или наоборот лишняя??
Ругается на else из 11 строчки. Где скобочки не хватает или наоборот лишняя?? ...

Задача : "Скобочки".
Некоторые скобочные структуры правильные, другие — неправильные. Ваша задача —...


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

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

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