olmalıdır Benzer sorular, ancak -containsObject
beklediğim gibi çalışmıyor.NSMutableArray includesObject true döndürür, ancak
Sorunum, NSMutableArray -containsObject
yönteminin, rastgele bir UNIQUE renk oluşturmaya çalışırken ve bir diziye eklerken, yapmamasına rağmen doğru döndürmesidir.
NSMutableArray
'un aynı değerlere sahip bir nesne içerip içermediğini kontrol etmenin en iyi yolu nedir?
sizin for()
döngü yapısı çok yanlıştır:
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()
her zaman söylediği dizi sayısı 1.
Eğer adım adım 't' ve 'colour_arr' içeriğine bakmak hata ayıklama mı? – Wain
(UIColor *) t gerektiği gibi farklı adres ve rgb değerleri alır. ama içerirObject, "Ben zaten aldım" diyor. sadece kopyala yapıştır kodu. ve günlüğe kaydetme sayısı 1 –
UIColor, şamandıraları (CGFloats değerini kesin olarak) RGB değerleri olarak alır - 0 ile 1 arasında. RGB değerlerini doyurarak muhtemelen uzun bir dizi benzer nesne oluşturmuş olabilirsiniz. – Monolo