To jest mój kod:

NSString *newString = @"new value"; 


[breakdownCollection objectAtIndex:i] = newString; 

PodziałCollection to NSArray składający się z wielu ciągów. Muszę uzyskać dostęp do danego ciągu zawartego w tablicy za pośrednictwem numeru indeksu i zmienić zawartość ciągu na zawartość nowego ciągu. Zauważ, że nie mogę po prostu zastąpić ciągu nowym, próbuję tylko zastąpić jego zawartość.

Jednak gdy próbuję to zrobić, otrzymuję błąd „lwartość wymagana jako lewy operand przypisania”.

Jakakolwiek pomoc w tej kwestii byłaby bardzo mile widziana!

1
Alec 9 lipiec 2011, 23:04
Dlaczego nie możesz wymienić ciągu na nowy?
 – 
dasdom
9 lipiec 2011, 23:07

2 odpowiedzi

Najlepsza odpowiedź

Błąd, który otrzymujesz, wynika z nieprawidłowego napisania instrukcji przypisania. Oznacza to, że nie możesz przypisać newString do [breakdownCollection objectAtIndex:i]. Nie będziesz też mógł tego zrobić w ten sposób. Zamiast tego, aby zmodyfikować zawartość obiektu ciągu, użyj NSMutableString, który zapewnia odpowiednie metody (NSString są obiektami niezmiennymi). Na przykład powinieneś spróbować:

[[breakdownCollection objectAtIndex:i] setString:newString];

Zakładając, że umieściłeś NSMutableString w breakdownCollection.

PS : aby zmienić obiekt o indeksie i, musisz użyć NSMutableArray zamiast NSArray, a następnie wywołać :

[breakdownCollection replaceObjectAtIndex:i withObject:newString];

Powodzenia !

Dokumentacja klasy NSMutableString

Dokumentacja klasy NSMutableArray

2
user756245user756245 9 lipiec 2011, 23:16
Dziękuję za pomoc Vince
 – 
Alec
9 lipiec 2011, 23:51

Zamiast tego użyj NSMutableArray, a następnie możesz użyć metody -replaceObjectAtIndex: withObject:

1
PengOne 9 lipiec 2011, 23:12