假设我有一个包含对象的数组,1, 2, 3 and 4.

推荐答案

@Darryl的答案是正确的,但可能需要一些小的调整:

NSUInteger randomIndex = arc4random() % theArray.count;

修改:

  • rand()random()上使用arc4random()更简单,因为它不需要种子(调用srand()srandom()).
  • modulo operator(%)使整个语句更短,同时也使其语义更清晰.

Objective-c相关问答推荐

react 本机WebView菜单项目props 无法在iOS&>=16上使用

Objective C 中的 RSA 实现

animateWithDuration:animations: 会阻塞主线程吗?

在 Objective-C 中实现纯虚方法

使用 ARC,什么更好:alloc 或 autorelease 初始化程序?

iOS 块和对自身的强/弱引用

UIRefreshControl iOS 6 xcode

如何连续关闭 2 个模态视图控制器?

ios 13 - 带有 UISearchBar _searchField 的自定义 SearchBar 不起作用

为什么我们必须在 Objective-C 中做 [MyClass class]?

如何转储存储在 Objective-C 对象(NSArray 或 NSDictionary)中的数据

UITabBar 未在 ios 7 中显示所选项目图像

具有高质量代码的开源 Objective-C 项目?

如果目录不存在,是否有更安全的方法来创建目录?

Objective-C 中的 alloc、init 和 new

在 NSArray 中查找最大数值

iOS 7 中的 UITextView 链接检测

iOS 10 中的错误:无法从 https://mesu.apple.com/assets/ 复制assets资源信息以获取assets资源类型

NSNumber 和 NSInteger 有什么区别?

如何更新 Core Data 中的现有对象?