2012-04-13 8 views
0

Ich habe ein Problem wie, wenn ich versuche, string trennen und holen Array aus der gleichen usingcomponentsSeparatedByString, der string hat Werte, aber wenn es Werte an Array liefert, ist der Array-Wert immer null, bitte helfen Sie mir , Ich habe den Code unten angehängt.componentsSeparatedByString gibt nil für array zurück

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

was in arr_HotspotDetails ist ? Und was ist in self.str_amenitiesValues ​​kurz vor den componentsSeparatedByString? – Novarg

+0

Arr_hotspotDetails ist das Haupt-Array, von dem die Zeichenfolge kommt, und str_amenitiesValues ​​ist der Nsstring, –

+0

Ich sehe, dass sie Array und String sind. Ich möchte wissen, was IN ist – Novarg

Antwort

-1

Make ur Linie als:

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

lassen Sie mich wissen, ob das Ihnen hilft.

+0

Nein, die self.arr_amenities_values ​​sind immernoch null. –

+1

Kommentieren Sie die Zeile, in der dem Array Speicher zugewiesen wird, und überprüfen Sie dann mit der obigen Zeile. – Deviator

+0

Sag mir, was passiert? – Deviator

0

Ich glaube, Sie brauchen, um die Werte aller Ihrer Vars in verschiedenen Stadien zu bekommen, damit Sie herausfinden können, was passiert ist, da es keinen Grund zu sein scheint es nicht, anders als die Inhalte arbeiten der Schnur.

+0

Werte, wenn str_amenitiesvalues ​​5,6,7,8,9,10,11,12 –

+0

Sind Sie sicher, dass Sie die Zeichenfolge nicht auf Null setzen, wie Matthias Bauch vorschlägt? componentsSeparatedByString funktioniert mit der Zeichenfolge, die Sie angegeben haben! – SomaMan

1

Sind Sie 100% sicher, dass str_amenitiesvalues ​​"5,6,7,8,9,10,11,12" ist? Ich habe gerade einen schnellen Test und das ist, was ich habe:

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

Protokollausgabe:

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

Also würde ich empfehlen Sie doppelt den Inhalt Ihrer Zeichenfolge str_amenitiesvalues ​​Überprüfung

+1

und der einzige Weg 'componentsSeparatedByString:' gibt nil zurück, wenn der NSString des Empfängers NULL ist. –

+0

BTW, ich habe ein Speicherleck aus Ihrem Code entfernt. Wenn Sie es in der nächsten Zeile überschreiben, müssen Sie kein Array zuweisen/initialisieren. –

+0

@MatthiasBauch ok, danke. Aber ich habe versucht, es so nah wie möglich am Fragecode zu halten – Novarg

Verwandte Themen