- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我发现了类似的问题,但是 -containsObject
没有像我预期的那样工作。
我的问题是 NSMutableArray -containsObject
方法不应该返回 true,当尝试生成随机的 UNIQUE 颜色并添加到数组时。
检查 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]);
NSLog()
始终表示数组计数为 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
值。尝试将您的 integer
除以 255,然后将它们设置为 r、g、b。
喜欢:
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];
关于objective-c - NSMutableArray containsObject 返回 true,但它不应该,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18338352/
我有一个关于 xcode 编码的简单问题,但不知道为什么事情没有像我想象的那样执行。我有一个对象数组(自定义对象)。我只是想检查一下这个是否在数组中。我使用了以下代码: NSArray *collec
我有一个 UITabelView 显示项目列表(从服务器返回),用户将能够选择任何项目并将其添加到他自己的部分。选择一个项目后,我将检索所选项目的详细信息并将其保存到 pList 文件中,然后该列表将
我有一个名为 selectedUsers 的 NSMutableArray,我正在使用名为 addUser 的方法向其添加对象。被添加的对象通常是 PLManagedUser 类型(一个核心数据管理对
我有这样的字符串数组:数组 = P123、P234、P543、P678 我有像 P12300 这样的字符串。(这可以是数组中的相同字符串,也可以没有尾随零)。 我正在使用 containsObject
我目前正在使用这个扩展: extension Array { func containsObject(_ object:Any) -> Bool { if let an
我正在开发一个应用程序来检查数组以查看它是否包含特定字符串。但是,它似乎工作不正常,因为我认为它可能正在查看字符串的大小写。在这行代码中,我如何确保 containsObject: 不区分大小写? i
我对NSArray containsObject方法有些困惑。此方法是否比较指向对象的指针或对象的确切内容?更具体地说:我有一个NSIndexPath对象数组,在之前的某个地方创建,现在我要检查是否存
我正在调用 DetailsViewController 尝试使用以下代码,如果, ([[FavViewController myFavsTwo] containsObject:_word]) 但出现错
我有一个包含以下内容的数组列表 (RatingsList) {type = mutable-small, count = 8, values = ( 0 : {contents = "NR-A
所以,Apple 的文档是这样描述containsObject的: This method determines whether anObject is present in the array by
对于数组:我如何做 indexOfObject 或适当的 containsObject? 我的意思是我知道我可以将 Array 桥接到 NSArray 并在那里完成 ^^ 但是必须有一种“本地”方式来
我需要确定一个对象是否包含在 Core Data 对多关系(这是一个 NSSet)中,并且我正在尝试确定两种解决方案中哪一种更好: 解决方案 1) if ([managedObject.items c
这两个属于NSSet类的方法有什么区别: -(BOOL)containsObject:(id)anObject -(id)member:(id)object 最佳答案 答案在于返回值。 contain
我发现了类似的问题,但是 -containsObject 没有像我预期的那样工作。 我的问题是 NSMutableArray -containsObject 方法不应该返回 true,当尝试生成随机的
closed = [[NSHashTable alloc]initWithOptions:NSPointerFunctionsObjectPointerPersonality capacity:400
NSSet 添加了两个对象,但是当我检查成员资格时,我找不到其中之一。 下面的测试代码在 iOS7 中运行良好,但在 iOS8 中失败。 SKNode *changingNode = [SKNode
假设我有一个 NSSet,里面有一个字符串。如果我将 containsObject: 与另一个字符串一起发送,该字符串是不同的指针但字符串值完全相同,是否会返回 YES? 另外,removeObjec
上周我一直在使用最新的 Facebook iOS SDK v4.0.1 编写 Swift 应用程序。今天更新到最新的XCode 6.3 和Swift 1.2 后,出现了很多错误。我已经能够修复其中的大
我是一名优秀的程序员,十分优秀!