假设我有NSSet一个字符串.如果我发送containsObject:另一个字符串,它是一个不同的指针,但完全相同的字符串值,将返回YES?
此外,它涉及到同样的故事removeObject:吗?即,具有不同指针但具有相同字符串值的不同对象将导致删除?
如果您有一个NSArray字符串
{ @"ONE", @"ONE", @"ONE", "TWO", @"THREE", @"THREE" }
Run Code Online (Sandbox Code Playgroud)
我怎么会把它变成
{ @"ONE", @"TWO", @"THREE" }
Run Code Online (Sandbox Code Playgroud)
..数组遵循与原始数据相同的顺序.我认为您可以将数组转换为NSSet以获取唯一的项目,但如果您将其转换回数组,则无法保证获得相同的顺序.
我有一些NSDictionary对象存储在一个NSArray被调用的telephoneArray.我获取键的值number,然后用NSDictionary数组中相同索引处的新对象替换我刚刚读取的内容.然后我想将这些新对象放入NSSet.怎么能实现这一目标?看下面我的失败尝试.
// Add all telephones to this branch
for (int i=0; i<[telephoneArray count]; i++) {
[newTelephone setBranch:newBranch];
[newTelephone setNumber:[[telephoneArray objectAtIndex:i] valueForKey:@"number"]];
NSLog(@"%@",[[telephoneArray objectAtIndex:i] valueForKey:@"number"]);
[telephoneArray replaceObjectAtIndex:i withObject:newTelephone];
NSLog(@"phone number %i = %@",i,[[telephoneArray objectAtIndex:i] valueForKey:@"number"]);
}
NSSet *telephoneSet = [NSSet setWithArray:telephoneArray];
NSLog(@"telephoneArray=%i",[telephoneArray count]);
NSLog(@"telephoneSet=%i",[[telephoneSet allObjects] count]);
Run Code Online (Sandbox Code Playgroud)
OUTPUT:
2010-03-06 03:06:02.824 AIB[5160:6507] 063 81207
2010-03-06 03:06:02.824 AIB[5160:6507] phone number 0 = 063 81207
2010-03-06 03:06:02.825 AIB[5160:6507] 063 81624
2010-03-06 03:06:02.825 AIB[5160:6507] …Run Code Online (Sandbox Code Playgroud) 我有一个从.NET WebService返回的自定义对象列表,并使用父级enitity与Core Data的To-Many关系存储它们.
我想使用NSSet作为UITableView的数据源,并在选择行时将新控制器压入堆栈.
使用时[NSSet allObjects],返回的数组总是具有相同的顺序?(我猜不是因为集合是无序的)
如果没有,那么我如何使用NSArray *myArray = [mySet allObjects];in cellForRowAtIndexPath来获取textLabel单元格的名称,然后再将in didSelectRowAtIndexPath对象分配给即将推送的ViewController?
我已经在我的家伙中合成了父对象UITableViewDelegate.我已经考虑过也有一个NSArray合成并且allObjects只使用一次viewDidLoad创建,但这会复制内存中的数据
我有一堆来自CCTMXLayer的CGPoints我想保存到NSUserDefaults,但似乎无法找到一种优雅的方式.
最初我希望使用NSMutableSet为包含多个NSValues(valueWithCGPoint)的值保存NSDictionary.据我所知,NSUserDefaults不支持NSMutableSet或NSValue.
此时我正在考虑将CGPoint的x和y值保存为字符串,并根据需要来回转换它.
我一直在假设NSSet使用hash查找潜在的匹配,然后在每个上面调用isEqual来检查真正的冲突,但我意识到我找不到任何证据支持这一点.
我提出的原因是NSSet中存在"member:"方法.为什么成员的文档:尽量指定isEqual:用于在NSSet中没有别的时候找到你的对象?containsObject:只使用哈希或其他什么?
谁能证实这种行为?理想情况下,参考文档呢?
如果我有一个NSSet的NSString对象,我怎么能加入他们的行列,共同创建一个单一的NSString?
在我的应用我有一个类Person与personId属性.
现在我需要一些数据结构来保存一堆独特的Person对象(unique = different personId)
所以我想我应该使用NSMutableSet作为我的数据结构,但是如何personId在添加一个人时让NSMutableSet比较属性(所以我不会添加同一个人多一些)?
我的目标是始终拥有一组独特的人(即使我添加了两个具有相同ID的人),我希望NSMutableSet能为我做所有艰苦的工作,如果我正在添加一个已经存在的人它不会添加两次.
我在这里疯了.由于某种原因,我找不到一个如何使用NSSet(cocoa)的objectsPassingTest:函数的完整示例.在任何人指出我关于街区的网页之前,我已经看过那些了.给出的示例仅显示如何声明函数,而不是操作它的块,当我用自己的代码尝试它们的示例时它不起作用.我只是想看看有关如何使用该函数的几个工作示例,然后我将能够自己解决这个问题.
nsset ×10
objective-c ×7
iphone ×6
cocoa ×3
cocoa-touch ×2
nsarray ×2
cgpoint ×1
collections ×1
core-data ×1
foundation ×1
ios ×1
ipad ×1
nsmutableset ×1
nsstring ×1
uitableview ×1