NSMutableArray containsObject 返回 true,但它不应该

2024-01-04

我发现了类似的问题,但是-containsObject没有像我预期的那样工作。

我的问题是NSMutableArray -containsObject方法在不应该返回 true 时返回 true, 当尝试生成随机唯一颜色并添加到数组时。

检查是否存在的最佳方法是什么NSMutableArray包含具有相同值的对象。

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]);

The NSLog() always says array count is 1.

新编辑:

你的结构for()循环也是错误的。您在循环开始之前声明 UIColor。您应该在循环开始后声明颜色:

for (i=0;i<100;i++) {
    int rInt = arc4random()%256;
    float rFloat = (float)rInt/255.0f;
    //same with gInt, bInt
    //make gFloat and bFloat this way
    UIColor *t = [UIColor colorWithRed:rFloat green:gFloat blue:bFloat alpha:1];
    if (![color_arr containsObject:t]) {
        [color_arr addObject:t];
    }
    NSLog(@"%i",color_arr.count);
}

UIColor 不使用integer值,它使用float价值观。尝试划分你的integer255,然后将它们设置为 r、g、b。

Like:

int rInt = arc4random()%256;
float rFloat = (float)rInt/255.0f;
//same with gInt, bInt
//make gFloat and bFloat this way
t = [UIColor colorWithRed:rFloat green:gFloat blue:bFloat alpha:1];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NSMutableArray containsObject 返回 true,但它不应该 的相关文章

随机推荐

  • 如何在Python中用单反斜杠替换双反斜杠? [复制]

    这个问题在这里已经有答案了 我有一根绳子 该字符串中有双反斜杠 我想用单反斜杠替换双反斜杠 以便可以正确解析 unicode 字符代码 Pdb p fetched page p style text align center align c
  • 在 Android Studio 中导入 Facebook 库:找不到属性“ANDROID_BUILD_SDK_VERSION”

    我想将库项目导入到我的应用程序中 但每当我尝试这样做时 Android Studio 都无法识别它 它还在 build gradle 中给了我错误 该库是 PagerSlidingTabStrip 以下是一些图片 到目前为止我已经尝试了三天
  • .NET StringBuilder 在前面添加一行

    我知道System Text StringBuilder在 NET中有一个AppendLine 方法 但是 我需要在 a 的开头预先附加一行StringBuilder 我知道你可以使用Insert 附加一个字符串 但我似乎无法用一行来做到这
  • @Scheduled 方法内部的 Spring @Async 方法调用

    我正在使用 Spring boot EnableScheduling and EnableAsync 我有一个注释为的方法 Scheduled 我还有几个方法 注释为 Async 现在我称这些为 Async中的方法 Scheduled方法并
  • 在Powershell中使用Import-CSV,忽略注释行

    我认为我一定错过了一些明显的东西 因为我正在尝试使用 Import CSV 导入已在文件顶部注释掉行 始终以 作为第一个字符开头 的 CSV 文件 因此文件看起来像这样 SpecialCSV Version 1 0 0 Table Head
  • R,dplyr:如果每组只有一个唯一的非 NA 元素,则按组折叠字符变量元素

    假设我有以下 data framedf患者家乡和一项任意临床指标 心率 id lt c rep 1 3 each 2 rep 4 3 pt hometown lt c Atlanta NA NA San Diego NA NA San Fr
  • 使用 AWS Glue 或 PySpark 过滤 DynamicFrame

    我的 AWS Glue 数据目录中有一个名为 mytable 的表 该表位于本地 Oracle 数据库连接 mydb 中 我想将生成的 DynamicFrame 过滤为仅 X DATETIME INSERT 列 时间戳 大于特定时间 在本例
  • 在 Spring Data REST+HATEOAS 中删除 REST 关联

    我想知道如何通过 REST 调用删除多对多关联 我能够创建记录并将它们关联起来 但不知道如何删除 我有一个 Spring Boot 项目 其中使用 REST 和 HATEOAS 来绕过服务和控制器并直接公开我的存储库 我有一个用户模型 域类
  • 简单的 Haskell 循环

    我刚刚开始学习 Haskell 但现在缺少循环令人无限沮丧 我弄清楚了如何为函数编写循环 然而 我的问题是我想在迭代循环时输出一些结果 看来我必须使用调试来执行这个简单的任务 所以现在我只想看一个如何在主结构中打印 10 次字符串的示例 换
  • 使用VBA代码将表格从Excel复制到Word书签

    我实际上需要你帮助修改这个宏代码 我从其他地方得到了这个代码 抱歉 忘记了他的名字 基本上 我有来自 Excel Sheet1 的表数据源 我需要将该表传输到 MS Word 同时保留边框 字体大小 自动调整等格式 并使用名为 书签 的书签
  • ASP.NET 类库未遇到断点

    我有一个使用 vs2008 的 ASP NET Web 应用程序 它曾经让我达到断点 但由于本网站中的某些未知原因 它不再让我达到断点 我已经将所有内容设置为调试和重新构建大约一百万次以及其他所有内容 但似乎无法达到该死的断点 断点适用于该
  • #include 运行 pip install zbar 时生成 1 个错误

    我正在尝试奔跑pip install zbar由于某种原因 我似乎无法找到解决此依赖性问题的答案 任何帮助将不胜感激 请参阅下面的回溯 Downloading unpacking zbar Downloading zbar 0 10 tar
  • UIWebView:如何在 HTML 文本字段中插入文本

    I ve an UIWeb视图加载移动网络表单 URL 的位置 在我的应用程序的方法中 我想将一些文本插入具有焦点的 UIWebView 中的 HTML 文本字段中 我怎样才能做到这一点 有没有办法获取具有焦点的 HTML 元素的 ID 然
  • Python:基于参数的单例

    我正在关注这个link https stackoverflow com a 6798042 820410并尝试创建一个单例类 但是 考虑参数 在启动类时传递 以便在参数相同时返回相同的对象 因此 不要将类名 类引用存储为dictkey 我想
  • UWP 应用程序安装无需管理员权限、powershell 交互且无需 Windows 应用商店?

    这里有 windows uwp 专家 吗 我已经研究下面提到的主题一天了 因为我不敢相信我们无法分发我们的 UWP 应用程序 是不是真的不可能通过以下方式分发 UWP 应用程序与商店不同的渠道无需手动运行 与powershell脚本交互 因
  • .htaccess:如何删除 URL 中的子文件夹子文件夹?

    我正在尝试重定向此网址www domain com username to www domain com username public但删除 public从网址 这是我的 htaccess file
  • 如何将 singledispatchmethod 与继承类一起使用

    在我的代码中 我有以下课程 class A functools singledispatchmethod def handle arg pass 我想要其他类继承A并重载泛型方法handle像这样 class B A handle regi
  • 使用 SWT 时的 Java SwingWorker

    我有一个问题如下 我编写了一个简单的简约应用程序 它使用 SWT 作为 GUI 在特定选项卡中 它显示一个通过 REST Api 调用填充信息的表格 另外 我还有另一种方法将此表导出到 CSV 文件中 这绝对没问题 现在我需要某种自动更新
  • Adobe After Effects 扩展脚本 - 如何从命令行运行脚本并传入参数?

    我正在尝试从命令行运行 Adob e AE 扩展脚本 我使用 r 参数 可以很好地运行脚本 但是 是否可以向脚本传递参数 就像 如果我从命令行运行这个 C gt C Program Files Adobe Adobe After Effec
  • NSMutableArray containsObject 返回 true,但它不应该

    我发现了类似的问题 但是 containsObject没有像我预期的那样工作 我的问题是NSMutableArray containsObject方法在不应该返回 true 时返回 true 当尝试生成随机唯一颜色并添加到数组时 检查是否存