2012-04-13 11 views
0

私は文字列を分離し、同じusingcomponentsSeparatedByStringから配列をフェッチしようとすると、文字列に値がありますが、配列に値を渡すと配列の値は常にNULLになります。私は以下のコードを添付しています。componentsSeparatedByStringは配列のためにnilを返します

私は内容以外の、それは動作しません何らかの理由があるように思われないよう、あなたが、あなたは何が起こっているかを把握することができますので、様々な段階で、すべてのVARSの値を取得する必要があると思う
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

の内容を確認する二重にお勧めします?そして、componentsSeparatedByStringの直前にself.str_amenitiesValuesがありますか? – Novarg

+0

arr_hotspotDetailsは、文字列が来る主な配列です。str_amenitiesValuesはnsstringです。 –

+0

配列と文字列です。私はそれが何であるか知りたいです – Novarg

答えて

-1

としてウル行してください:

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

はこれがあなたを助けている場合、私に知らせてください。

+0

いいえ、まだself.arr_amenities_valuesはnullです。 –

+1

メモリがあなたの配列に割り当てられている行をコメントし、上記の行で確認してください。 – Deviator

+0

何が起こるか教えてください。 – Deviator

0

文字列の

+0

str_amenitiesvaluesが5,6,7,8,9,10,11,12の場合の値 –

+0

Matthias Bauchの示唆しているように、文字列をnilに設定していないのですか? componentsSeparatedByStringはあなたが提供した文字列を処理します! – SomaMan

1

str_amenitiesvaluesが "5,6,7,8,9,10,11,12"であることを100%確信していますか?私は簡単なテストを行なったし、それは私が得たものです:

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 
) 

だから私はあなたがarr_HotspotDetailsにあるもの、あなたの文字列str_amenitiesvalues

+1

と 'componentsSeparatedByString:'がnilを返す唯一の方法は、受信側NSStringがnilの場合です。 –

+0

btw、あなたのコードからメモリリークを削除しました。次の行に上書きする場合は、配列を割り当て/初期化する必要はありません。 –

+0

@MatthiasBauch大丈夫、ありがとう。しかし、私はちょうど質問のコードにできるだけ近づけようとしました – Novarg