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!
2 odpowiedzi
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
Zamiast tego użyj NSMutableArray
, a następnie możesz użyć metody -replaceObjectAtIndex: withObject:
Podobne pytania
Nowe pytania
iphone
NIE używaj tego znacznika, chyba że adresujesz konkretnie iPhone'a i / lub iPoda touch firmy Apple. W przypadku pytań niezależnych od sprzętu użyj tagu [ios]. Więcej tagów do rozważenia to [xcode] (ale tylko jeśli pytanie dotyczy samego IDE), [swift], [objective-c] lub [cocoa-touch] (ale nie [cocoa]). Proszę powstrzymać się od pytań dotyczących iTunes App Store lub iTunes Connect. Jeśli używasz języka C #, oznacz tagiem [mono].