Mit diesem Code:
uint32_t rnd = arc4random_uniform([tips count]);
NSString *randomObject = [tips objectAtIndex:rnd];
EDIT: Während auf meinem Projekt arbeiten ich beschlossen, eine Kategorie für NSArray zu erstellen. Es ist sehr einfach, aber ich fand es nützlich.
Hier sind die Dateien:
NSArray + Random.h
#import <Foundation/Foundation.h>
@interface NSArray (Random)
- (id)randomObject;
@end
NSArray + Random.m
#import "NSArray+Random.h"
@implementation NSArray (Random)
-(id)randomObject {
NSUInteger myCount = [self count];
if (myCount)
return [self objectAtIndex:arc4random_uniform(myCount)];
else
return nil;
}
@end
Dann im aktuellen Beispiel verwenden Sie es wie dies:
NSString *randomObject = [tips randomObject];
Die Verwendung der Kategorie hat noch einen weiteren Vorteil: Wenn Sie Ihre Methode zum Auswählen zufälliger Objekte in Ihrer App ändern, ändern Sie einfach die Methode randomObject.
+1, weil ich über arc4random_uniform gerade gelernt. Vielen Dank. Zeit, alle meine arc4randoms zu ersetzen –
Diese Lösung hat super funktioniert, danke. – beakr
@MatthiasBauch Ich bin froh, dass ich helfen konnte. Vielleicht möchten Sie die Kategorie verwenden, die ich gerade gepostet habe. Dann wird deine nächste Änderung weniger schmerzhaft sein :) – Adam