Diziden rasgele nesne almak istiyorum, rastgele nesneyi nasıl değişebilir diziden bulabilirim? Belirli bir dizide gelen rasgele bir değer alacak NSArray bu uzatmak istemiyorsanızArray öğesinden rasgele nesne alın
13
A
cevap
33
@interface NSArray (Random)
- (id) randomObject;
@end
@implementation NSArray (Random)
- (id) randomObject
{
if ([self count] == 0) {
return nil;
}
return [self objectAtIndex: arc4random() % [self count]];
}
@end
+1
Moduler önyargıdan kaçınmak için, arc4random() yerine arc4random_uniform() kullanın. (Daha fazla bilgi için bkz. Http://stackoverflow.com/questions/10984974/why-do-people-say-there-is-modulo-bias-when-using-a-random-number-generator). –
8
7
id randomObject = nil;
if ([array count] > 0){
int randomIndex = arc4random()%[array count];
randomObject = [array objectAtIndex:randomIndex];
}
3
iyi yolu bu
int length = [myMutableArray count];
// Get random value between 0 and 99
int randomindex = arc4random() % length;
Object randomObj = [myMutableArray objectAtIndex:randomindex];
0
gibi bir şey yapmak olacaktır bir satır:
id randomElement = [myArray objectAtIndex:(arc4random() % myArray.count)];
1
Sadece Kopyala ve
-(NSMutableArray*)getRandomValueFromArray:(NSMutableArray*)arrAllData randomDataCount:(NSInteger)count {
NSMutableArray *arrFilterData = [[NSMutableArray alloc]init];
for(int i=0; i<count; i++){
NSInteger index = arc4random() % (NSUInteger)(arrAllData.count);
[arrFilterData addObject:[arrAllData objectAtIndex:index]];
[arrAllData removeObjectAtIndex:index];
}
return arrFilterData;
}
Not yapıştırın: Kont = Eğer burada
1
getirmesini istediğiniz rasgele değerlerin sayısı dizilerde bir uzantı kullanarak bir Swift çözüm var:
extension Array {
func sample() -> Element? {
if self.isEmpty { return nil }
let randomInt = Int(arc4random_uniform(UInt32(self.count)))
let randomIndex = self.startIndex.advancedBy(randomInt)
return self[randomIndex]
}
}
Gün içinde bir çok kullanabilirsiniz bu kadar basit:
let digits = Array(0...9)
digits.sample() // => 6
Ayrıca biraz daha kullanışlı özelliklere sahip bir
Framework tercih ederseniz
sonra HandySwift ödeme.
import HandySwift
let digits = Array(0...9)
digits.sample() // => 8
İlgili konular
- 1. Python'daki Numpy Array öğesinden SQL üstbilgileri alın
- 2. Array öğesinden Object adlarına erişme
- 3. MongoDB'deki Array öğesinden farklı değerler seçme
- 4. RingtonePreference öğesinden Ringtone başlığı alın
- 5. "Bootstrap-Select" öğesinden değer alın
- 6. UIDatePicker öğesinden seçili süreyi alın
- 7. Veritabanından rasgele nesne GORM ile
- 8. Nesne id tarafından alın()?
- 9. Nesne nesnesinden alın C#
- 10. Tüm sekmeler parçacıklarını QTabWidget öğesinden alın
- 11. Öğenin değeri OnItemClick Listview öğesinden alın
- 12. eşzamanlı nesne notifyAll() öğesinden önce kilitlenmedi()
- 13. TypeScript ile Array İçinde Nesne Bul
- 14. Array
- 15. Nesne varsa, nesneden özniteliği alın
- 16. Array,
- 17. Google Maps: harita öğesinden enlem ve boylamı alın
- 18. Linq veya lambda kullanarak X rasgele öğeleri tablodan alın C#
- 19. Telefondan rasgele bir fotoğraf alın ve ekran görünümünde
- 20. Javascript - facebook'taki arkadaşlarından birinin rasgele profil resmini alın
- 21. JTextField öğesinden JTextField öğesinden JText
- 22. Pandalar: Seri Nesne değer etiketini alın
- 23. Nesne almadan s3 meta verisi alın
- 24. Nasıl bir Array gelen PHP bir nesne dolduruyorsunuz
- 25. JavaScript: Bir Nesne içinde bir Array içine itin?
- 26. Nesne C'deki bir NSArray'ı rasgele birleştirme yolu kuralı
- 27. UITableView NSMutableArray öğesinden bölümler bölümlendirme
- 28. Array json on mysql return Array
- 29. Scala - Array Array [dize] dönüştürmek [Çift]
- 30. JSON Array nasıl oluşturulur?
(http [i telefon sdk bir diziden Randon öğelere erişmek nasıl] olası yinelenen: // stackoverflow Daha sonra aynen yukarıdaki örnekte olduğu gibi kullanmak Carthage aracılığıyla projeniz ekleyebilirsiniz .com/questions/3509411/nasıl yapılır-randon-items-from-bir-dizi-in-i-telefon-sdk) –