2012-04-13 2 views
0

У меня проблема вроде, когда я пытаюсь выделить строку и выборку массива из тех же самых используемых компонентовSeparatedByString, stringis имеет значения, но когда он предоставляет значения массиву, значение массива всегда равно null, пожалуйста, помогите мне , Я добавил код ниже.componentsSeparatedByString возвращает nil для массива

self.str_amenitiesValues = [[NSString alloc] init]; 
    self.str_amenitiesValues = [[arr_HotspotDetails valueForKey:@"Amenities"] objectAtIndex:0]; 
    self.arr_amenities_values =[[NSArray alloc] init]; 

    if (![self.str_amenitiesValues isEqualToString:@""]) 
    { 
     //NSLog(@"%@",[self.str_amenitiesValues componentsSeparatedByString:@","]); 
     self.arr_amenities_values = [self.str_amenitiesValues componentsSeparatedByString:@","]; 
    } 
+0

, что находится в arr_HotspotDetails ? И что находится в self.str_amabilitiesValues ​​непосредственно перед компонентамиSeparatedByString? – Novarg

+0

arr_hotspotDetails - это главный массив, откуда идет строка, и str_amabilitiesValues ​​- это nsstring, –

+0

Я вижу, что это массив и строка. Я хочу знать, что в нем – Novarg

ответ

-1

сделать ур линии, как:

self.arr_amenities_values = [[self.str_amenitiesValues componentsSeparatedByString:@","] retain]; 

дайте мне знать, если это поможет.

+0

нет, все же self.arr_amvents_values ​​имеет значение null. –

+1

Прокомментируйте свою строку, в которой выделена память для вашего массива, а затем проверьте ее выше. – Deviator

+0

Расскажите, что произойдет? – Deviator

0

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

+0

значения, если str_amituresvalues ​​- 5,6,7,8,9,10,11,12 –

+0

Вы уверены, что не устанавливаете строку на нуль, как предлагает Маттиас Бауч? componentsSeparatedByString WILL работает над строкой, которую вы предоставили! – SomaMan

1

Вы уверены, что str_amituresvalues ​​"5,6,7,8,9,10,11,12"? Я просто сделал быстрый тест, и вот что у меня получилось: выход

NSString *test = @"5,6,7,8,9,10,11,12"; 
NSArray *testArray = [test componentsSeparatedByString:@","]; 
NSLog(@"test: %@ \n testArray: %@", test, testArray); 

Вход:

test: 5,6,7,8,9,10,11,12 
testArray: (
5, 
6, 
7, 
8, 
9, 
10, 
11, 
12 
) 

Так что я рекомендую вам двойной проверки содержимого ваших строк str_amenitiesvalues ​​

+1

и единственный способ 'componentsSeparatedByString:' возвращает nil, если приемник NSString равен нулю. –

+0

btw, я удалил утечку памяти из вашего кода. Нет необходимости выделять/инициализировать массив, если вы перепишете его в следующей строке. –

+0

@ MatthiasBauch ok, спасибо. Но я просто старался держать его как можно ближе к коду вопроса – Novarg

Смежные вопросы