从 NSArray 获取不重复的随机对象

2024-03-15

我有一个NSArray有 17 个对象,如下所示:

NSArray *objArray = [[NSArray alloc]initWithObjects: @"1",@"2",@"3",@"4",@"5",@"6"
,@"7",@"8",@"9",@"10",@"11",@"12",@"13",@"14",@"15",@"16",@"17", nil];

and an int随机数如下:

int random = arc4random()%17+1;

我想从中得到一个随机对象NSArray即使我关闭了应用程序(也许通过使用NSUserDefaults).

如果我已经获得了所有对象,我想为相同的对象生成一个新的随机序列。


您可以通过创建数组的可变副本来实现此目的,然后从该数组中进行随机选择后,删除同一对象。当您想要保存数组时,请保存可变数组本身,以便在应用程序重新启动时可以从上次中断的位置恢复。这个小测试应用程序就是这样做的,并且只记录随机选择的值:

- (void)viewDidLoad {
    [super viewDidLoad];
    self.objArray = @[@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9",@"10",@"11",@"12",@"13",@"14",@"15",@"16",@"17"];
    self.mut = [self.objArray mutableCopy];
}

-(IBAction)pickNumber:(id)sender {
    int index = arc4random_uniform(self.mut.count);
     NSLog(@"%@", self.mut[index]);
    [self.mut removeObjectAtIndex:index];
    if (self.mut.count == 0) {
        self.mut = [self.objArray mutableCopy];
        NSLog(@"*******************");
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 NSArray 获取不重复的随机对象 的相关文章

  • UISegmentedControl 中的自定义字体禁用调整FontSizeToFitWidth

    我已经为我的 UISegmentedControl 设置了自定义字体 但它似乎禁用了默认字体自动调整字体大小以适合宽度范围 Before After 这是我用来设置自定义字体的代码 UISegmentedControl segmentedC
  • 创建类似于邮件应用程序菜单的 iPhone 弹出菜单

    当您想要回复消息时 我想创建一个类似于邮件应用程序中的弹出菜单 我在多个应用程序中看到过这一点 所以我不确定框架中是否内置了某些内容或一些示例代码 在 Swift 中创建操作表 代码已使用 Swift 5 进行测试 从 iOS 8 开始 U
  • NSMutableArray 实例变量内存管理

    我正在做最后一点内存管理整理 但有些东西我不明白 我已经检查了所有文档 Stack Overflow 等 但仍然不明白 我怀疑这与数组有关 我有一个NSMutableArray作为实例变量 我用它来保存从另一个数组中的对象创建的对象 vie
  • 释放 Core Foundation 对象引用

    我是否需要释放 Core Foundation 对象来清理内存 如果是这样 怎么办 例如 在代码中 ABAddressBookRef addressBook ABAddressBookCreate CFArrayRef peopleArra
  • 如何建立辅助NSSortDescriptor排序键?

    我已成功按排序键对数据进行排序lastName 但我想知道如何排序lastName 然后由firstName 这是我用来排序的代码lastName NSSortDescriptor sortDescriptor NSSortDescript
  • Objective-C:在哪里定义宏以便随处可用?

    我有一个 iOS 应用程序 它在许多视图控制器中使用相同的字符串 数字等 所以我认为最好在一个文件中定义这些常量并在所有视图控制器实现中使用它 优点是更改一个数字 我只需要做一次 而不是在所有视图控制器中都使用该数字 实际上 我的 h 文件
  • 在 uilabel 中查找文本的位置 {x,y}

    我有一个来自服务器的字符串 我正在 UILabel multiligne 上显示它 在该字符串中 我正在识别一些特定的子字符串 我想在该子字符串上放置一个按钮 按钮将是 UILabel 的子视图 为此 我需要子字符串坐标 我经历过这个 但我
  • 如何在 NSMutableArray 中实现“按值分组”?

    我正在使用 NSMutableArray 我想像在 SQL 中那样按日期获取值group by log date logMuArray log currenttime 4 30pm log date 11 12 2011 log durat
  • MySQL 使用 ALTER IGNORE TABLE 出现重复错误

    我的 MySQL 中有一个有重复项的表 我尝试删除重复项并保留一项 我没有主键 我可以通过以下方式找到重复项 select user id server id count as NumDuplicates from user server
  • Python Pandas 删除重复单元格 - 保留行

    我试图根据单列删除特定列的重复值 同时保留行的其余部分 df pd DataFrame A 1 2 3 4 B 5 5 6 7 C a a b c D c d e f 我想根据 C 列中的重复项删除 A 列和 B 列中的值 但保留 D 列的
  • 如何在 iOS 9 上可靠地检测是否连接了外部键盘?

    在 iOS 9 之前 确定是否连接外部键盘的最可靠方法是监听UIKeyboardWillShowNotification并使文本字段成为第一响应者 如中所述这个问题 https stackoverflow com questions 289
  • suhosin.mt_srand.ignore 在 PHP 中一致洗牌数组的解决方法?

    我有一个 PHP 脚本 需要随机化一个具有一致结果的数组 这样它就可以向用户呈现前几个项目 然后如果他们愿意 他们可以从同一个打乱的集合中提取更多结果 我目前使用的是这个 基于我相信的 Fisher Yates 算法 function sh
  • 推送动画,没有阴影和停电

    我有一个简单的iOS NavigationController基于应用程序 二UICollectionViews 相继 如果元素打开 第一个合集 被点击时 第二集 将被打开 非常简单 重要的提示 Both UICollectionViews
  • insertNewObjectForEntityForName:

    我使用 Xcode xcdatamodel 文件编辑器设置了一个实体 我创建了一个名为 Person 的实体 添加了一些属性 然后生成了一个 m 文件来表示它 一切都很好 现在 当我去编写一行代码时 例如 Person person Per
  • Mac OS X 上的 .dll 等效项 [重复]

    这个问题在这里已经有答案了 我来自一个Windows背景 我习惯于通过创建 dll 然后分发所有库和文档 因此 如果用户想要使用它 他会添加对库的引用并使用它 但是 在 Mac 中 我正在开发 SDK 并且我想要一种方法creating a
  • 如何判断 NSObject 是否具有某个属性?

    假设在 Apple API 1 0 版中 有一个 NSFoo 类 其属性为 color API 1 1 添加了属性 size 我想知道是否可以使用 getter myFoo size myFoo respondsToSelector sel
  • 生成两个日期内的随机日期数组的优雅方法

    我有一个日期选择器 其中显示两个月 我想在每个可见月份中随机选择 3 个日期 date datepicker minDate new Date dateFormat DD MM d yy constrainInput true before
  • 在 Objective-C 中的 Swift 类上调用 NSStringFromClass 返回模块损坏的名称

    我知道这个问题 https stackoverflow com questions 24107658 get a user readable version of the class name in swift in objc nsstri
  • 在可可中将 NSMutableArray 写入文件时出现问题

    一个真正的初学者问题 我有一个 NSView 子类 在其中创建一个包含 NSValues 的 NSMutableArray 当我想使用 writetofile atomatically 将数组写入文件时 文件已创建 但它不包含可变数组所包含
  • Glib 在 iPhone 应用程序中的使用

    我想基于现有的开源 Objective C 框架开发一个 iPhone 应用程序 但是该框架广泛使用了 glib 库 我找不到一种方法来构建和包含 iPhone 应用程序的 glib 库 非越狱 有什么办法可以做到这一点 或者有没有推荐的方

随机推荐

  • 由测试容器存储启动的 Ryuk 容器不会停止单例容器

    我有几个测试节点 但我将容器作为单例运行 ActiveProfiles test SpringBootTest webEnvironment SpringBootTest WebEnvironment RANDOM PORT AutoCon
  • 两个日期之间的周 Java + Joda 时间

    我想获取 Java 中两个日期范围之间的周数和月数 例如 开始日期 03 01 2012 结束日期 03 05 2012 由于这两个日期属于不同的两周 我希望结果为 2 而不是 0 问题的第二部分是 开始日期 02 29 2012 结束日期
  • IE可枚举垃圾创建

    我在实现 IEnumerable 接口的对象池中有以下代码 public IEnumerable
  • 使用 MongoDB 搜索实现自动完成功能

    我有一个MongoDB表格文件的收集 id 42 title candy can description canada candy canteen brand cannister candid manufacturer candle can
  • 如何增加条形图条形之间的间距

    How do I increase the space between each bar with matplotlib barcharts as they keep cramming them self to the centre thi
  • 强制不同的线程休眠

    所以我有一个程序可以充当其他程序的 外壳 它的核心是传递一个类 一个方法名称和一些参数 并处理函数的执行 其想法是允许其他程序员基本上安排他们的进程在此 shell 服务上运行 除了一个问题之外 一切正常 通常 这些计划执行的进程会占用大量
  • 获取模块中定义的所有常量的值

    我想获取模块中定义的所有常量的值 module Letters A apple freeze B boy freeze end constants给了我常量的名称 Letters constants false gt A B 我如何获得它们
  • sidekiq - 并发 > 50 稳定吗?

    Sidekiq 文档 https github com mperham sidekiq wiki Advanced Options concurrency says 不要将并发设置高于 50 我见过稳定性问题 以并发数100为例 好吧 我的
  • pandas 中的 [] 和 [[]] 有什么区别? [复制]

    这个问题在这里已经有答案了 我对 pandas 中索引列的结果感到困惑 Both db varname and db varname 给我 varname 的列值 然而 看起来有一些细微的差别 因为输出db varname 显示值的类型 第
  • 为什么需要连接来创建PreparedStatements?

    我想使用准备好的语句很多原因 https stackoverflow com questions 687787 how should i sanitize database input in java 但是 我想创建一个如下所示的方法 Th
  • Windows 上的 gVIM:执行缓冲区和带空格的路径

    在 Windows 版 gVim 中 可以通过 命令执行当前缓冲区 但是 不幸的是 缓冲区文件名提供给 cmd exe 时不带引号 因此如果文件路径有空格 gVim 将无法执行它 有没有简单的方法来修复它以便能够从 gVim 中执行 bat
  • 如何创建连续的组号

    我有一个数据框 all data 其中我有一个网站列表 1 到 n 及其分数 例如 site score 1 10 1 11 1 12 4 10 4 11 4 11 8 9 8 8 8 7 我想创建一个列 按数字顺序对站点的每个级别进行编号
  • 在 asp.net/C# 中使用 LinqToSql 对 row_number 进行排序

    我在数据库表中有一组记录 我们称之为组件表 定义为follows http postimage org image 2a20tc8ck 管理员可以使用表的最后一列禁用标志来禁用某些组件 如果某个特定组件被禁用 它不应出现在用户的网格视图中
  • Java 中 Cypher 查询的结果检索速度慢 - Neo4j 2.0

    我的结果检索速度出奇地慢ResourceIterator
  • Google Cloud AI 平台上的 Tensorflow 2

    Google Cloud AI 平台何时支持 Tensorflow 2 有消息吗 根据列表 1 15是最后支持的版本 https cloud google com ml engine docs runtime version list ht
  • 使用git创建一个临时分支名称

    有点相关这个问题 https stackoverflow com questions 15067561 git create temporary integration branch我想在 shell 脚本中使用临时分支 有点类似于 cd
  • 用于解析 Solana NFT 元数据并更新元数据的代码示例

    在 Solana 上 NFT 元数据存储在共享合约代币元数据程序所拥有的账户中 地址为metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s 我需要一个清晰 简洁的代码示例来说明如何使用某些现有库来获取特定
  • 在Python中解析多个xml文件

    我在这里遇到了一个问题 所以我想解析多个具有相同结构的xml文件 我已经能够获取每个文件的所有位置并将它们保存到三个不同的列表中 因为存在三种不同类型的 xml 结构 现在我想创建三个函数 为每个列表 它循环遍历列表并解析我需要的信息 不知
  • 使用命令行参数运行 eclipse

    有什么方法可以配置 eclipse 来运行带有某些命令行参数的程序以进行调试 您需要为 Eclipse 配置命令行参数 在 运行配置 gt 参数 下 Read here http www cs colostate edu helpdocs
  • 从 NSArray 获取不重复的随机对象

    我有一个NSArray有 17 个对象 如下所示 NSArray objArray NSArray alloc initWithObjects 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 nil an