Znalazłem podobne pytania, ale -containsObject
nie działa tak, jak oczekuję.NSMutableArray zawieraObject zwraca true, ale nie powinno
Mój problem polega na tym, że metoda NSMutableArray -containsObject
zwraca wartość true, gdy nie powinna, podczas próby wygenerowania losowych UNIKALNYCH kolorów i dodania do tablicy.
Jaki jest najlepszy sposób sprawdzenia, czy NSMutableArray
zawiera obiekt o tych samych wartościach.
NSMutableArray *color_arr=[NSMutableArray array];
UIColor *t;
for(int i=0; i<100; i+=1)
{
int r = arc4random()%256;
int g = arc4random()%256;
int b = arc4random()%256;
t=[UIColor colorWithRed:r green:g blue:b alpha:255];
if (![color_arr containsObject:t])
[color_arr addObject:t];
//[t release];//is t need to be released here on non-arc project? well Im not sure.
}
NSLog(@"total:%d",[color_arr count]);
NSLog()
zawsze mówi count tablica jest 1.
Czy debugowania, aby prześledzić i spojrzeć na 't' i zawartości' colour_arr'? – Wain
(UIColor *) t otrzymuje różne wartości adresu i rgb, tak jak powinien. , ale zawieraObject mówi: hej "Już to mam". po prostu kopiuj i wklej kod. i uzyskać liczbę rejestrów 1 –
UIColor przyjmuje zmienne (CGFloats to be precise) jako wartości RGB - od 0 do 1. Prawdopodobnie stworzyłeś długą serię identycznych obiektów przez nasycenie wartości RGB. – Monolo