问题标签 [nsmutableset]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
iphone - 在 NSMutableSet 中查找具有相同属性值的对象
我有 NSMutableSet 对象。所有对象显然都是唯一的,但它们可能具有相同的 .angle值,即 NSInteger 属性。
我需要确定是否有两个或多个具有相同.angle值的对象,然后将它们分组到一个数组中。
我怎样才能做到这一点?
任何指导将不胜感激
memory-management - 在另一个函数中调用 NSMutableSet 的方法会抛出 EXC_BAD_ACCESS
我被困在这样的代码上:
我只在 foo1 之后调用 foo2。我的调试是这样的:
怎么了?__ 有趣的注释:只有当 foo2 按计划调用时它才会失败。__ 对不起,我错过了细节。两者都完美无缺。谢谢你们
objective-c - 观察 NSMutableSet 的键值对
在一个普通的类中,我有一个 NSMutableSet 属性。每当将对象添加到集合中或从集合中删除时,我都想执行一些自定义代码。我知道我可以为类编写一些类似addObjectToSet:
的方法,但我想知道是否有更优雅的解决方案,直接使用 KVO。
事实证明,当您尝试向其添加观察者时,NSSet 将引发异常。毫不奇怪,因为可能没有要观察的命名 keyPath。文档对异常非常清楚,但我不明白建议的解决方法:
与其观察集合,不如观察无序的多对多关系,其中集合是相关对象的集合。
有人可以重申这意味着什么吗?那么解决方法会是什么样子?
objective-c - NSMutableSet count = 1,但该对象为空?
我正在使用运行良好的 NSMutableSet,直到出现这个奇怪的 SIGABRT 错误:
2011-07-05 17:01:00.249 Dama [1497:cd57] *由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[__NSCFSet removeObject:]:尝试删除 nil”
好的,我无法删除 nil,但这是我的代码:
使用 gdb 控制台,我发现 theSet 看起来像这样:
(gdb) po theSet
{(
)}
(gdb) 打印 (int) [theSet 计数]
$1 = 1
这怎么可能?
PS:我在多线程环境中运行..我不能保证不会同时被两个线程访问,但事实并非如此..
编辑
拜托,我真的很想知道 NSSet 怎么会以 (null) 结束,我不在乎它是如何到达那里的.. 不管我的多线程程序有多脏,我认为这不应该发生。[我仔细检查了,这个集合只能由后台工作线程访问]。
编辑
2011-07-05 17:39:55.884 应用程序 [1608:c59f] 设置计数 = 2 包含:{(
2011-07-05 17:39:55.886 App[1608:c59f] 设置计数 = 9 包含:{(
暗示!!
查看Step
dealloc 方法 (xD):
另一个提示!
PoolStep 是一个单例,在 sharedPool 方法中没有 @synchronize 块,因为它只能由一个线程访问。(并且需要性能)
iphone - 组合 NSMutableSet 的问题
我有以下代码:
我希望 serverSet 中的所有内容都在 localSet 中。此代码没有反映这一点。
如果没有将任何重复项添加到 localSet 中,这也是更可取的。
编辑:这是我的日志:
iphone - 对 MKMapView 中的注释执行操作时泄漏
我有一个方法可以接收要在地图视图上显示的注释(自定义 PostLocationAnnotation 类),并且将它们靠近在一起,输出 PostLocationAnnotations 和 LocationGroupAnnotations 的 MKAnnotation 数组(每个集群都包含一些 PostLocationAnnotations)。这是我调用该函数的方式(在“updateAnnotations”方法中,当地图的视口发生变化时调用):
annotationsToAdd 最初由从服务器检索但尚未添加到地图的注释填充。因此,我将应放在地图上的注释的完整列表传递给 clusterAnnotations 方法。这是方法的主体:
当我运行它时,我收到一条僵尸消息,我发现删除 [D release] 修复了僵尸但会导致泄漏。查看 Instruments 可以看到内存地址首先在 clusterAnnotations 中进行了 Malloc 处理,然后被保留并释放了几次,然后被 regionQueryForPoint 保留了很多次(达到 47 个引用的峰值),然后被 clusterAnnotations 释放了两次,然后由 [NSAutoreleasePool drain] 释放,直到引用计数达到 -1 并且我收到僵尸消息错误。这是 regionQueryForPoint 的代码:
当从 expandDbScanClusterWithPoint 方法调用 regionQueryForPoint 时,似乎会发生大量保留,因此为了完整起见,我将其包含在此处:
我已经剖析这个很久了,计算引用,观察指针和所有东西,但我就是不知道如何安全地释放这个 D 集。谁能看到我没看到的东西?
objective-c - Objective c,反向 Collatz,帮我调试 NSArrays
我正在使用Collatz 猜想进行数学公平项目,我想制作一个反向图,你可以在维基百科上找到,尽管我发现我在代码中的某个地方搞砸了并且它没有显示所有反向值(例如,它会从数组中找到一个奇数,然后是相同的值 *2,但不会超过该值)。
iphone - Objective-c 对 NSStrings 的 NSMutableSet 进行排序?
可能重复:
对 NSSet 进行排序最有效的方法是什么?
我目前有一个 NSMutableSet ,其中包含以下字符串列表。例如: {@"c",@"d",@"e",@"f",@"g",@"a"}
有人可以告诉我如何按字母顺序对这些值进行排序吗?有没有办法做到这一点sortedArrayUsingDescriptors:
?
objective-c - 免费桥接对象,保留和释放
我目前正在查看NSMutableSet
由函数创建的a CFSetCreateMutable()
。文档指出 的返回值CFSetCreateMutable()
是免费桥接的,这意味着我可以简单地将其转换为NSMutableSet
. 这是否意味着向它发送release
消息是完全有效的?我是否总是可以安全地假设我总是可以将这些对象视为alloc
通过 NS 类来处理的?
objective-c - 使用对象填充 NSMutableSet 不起作用 - NSLog 和调试器显示 Null
我正在尝试使用 NSMutableSet 创建一组对象。对象是一个标签,每个标签都有一个id和一个名字。
标签类的定义如下:
在我的应用程序的其他地方,我使用 SQLite 来获取 TAG 表中的标签。我使用 while 循环进行迭代,对于每次迭代,我构建一个标记对象,然后尝试将其添加到集合中。下面的代码:
因此,正如我所提到的,当我遍历这个 while 循环时,我得到了正在填充的对象及其 id 和名称(我已经通过检查调试器并使用 NSLog 确认了这一点)。然而,即使我使用 addObject 方法,thisTagSet NSMutableSet 仍然为空。我在这里做错了吗?我也试过像这样分开两个步骤:
同样的结果。我成功获得了 thisTagObject,但 thisTagSet 中没有任何内容...