问题标签 [nsmutablearray]

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.

0 投票
4 回答
5953 浏览

objective-c - 如何在 Cocoa 中做稀疏数组

我有一个基于唯一整数键的数据集的未确定大小。

我想使用NSMutableArray快速查找,因为我所有的键都是基于整数的。

我想做这个。

然后以后人们会开始用整数索引(都是唯一的)向我扔数据,所以我只想做这样的事情......

并调整数组的大小,以便我可以做......

最后大小和新大小之间的所有插槽都为零,最终将在以后填充。

所以我的问题是如何调整现有的大小NSMutableArray

谢谢,罗马

0 投票
2 回答
29781 浏览

cocoa - NSMutableArray - 通过使用字符串搜索来获取数组索引整数

我一直在使用 NSMutableArray,并且使用objectAtIndex:int. 而不是通过整数从数组中拉出一个对象是他们通过使用字符串搜索数组来获取索引位置的一种方法。

希望这是有道理的,并且那里有答案,我无法在线研究并通过谷歌或苹果的类参考找到任何东西。

0 投票
2 回答
1093 浏览

iphone - NSMutableArray 的 -removeLastObject 是否释放对象?

我说的是 NSMutableArray 的 -removeAllObjects、-removeLastObject 等方法。文档只说这些方法从数组中“删除”对象。被移除的对象是否被释放?

0 投票
4 回答
13234 浏览

iphone - -arrayWithArray 实际上是做什么的?

我想看看它是如何创建一个数组的。如何查看显示其完成方式的 .m 文件?

0 投票
3 回答
4164 浏览

iphone - NSMutableArray addobject 与 malloc'd 结构

我在处理一段代码时遇到了问题。我正在尝试使用 addObject 方法将 CLLocationCoordinate2D 的实例添加到 NSMutable 数组中,但是每当执行该行时,我的应用程序就会崩溃。这段代码有什么明显的问题吗?

崩溃发生在这一行:

多边形.m:

0 投票
4 回答
3667 浏览

objective-c - NSMutableArray 传参内存泄漏

我在这里遇到了一个难题,将不胜感激,我的意思是任何帮助 =)

我是一名经验丰富的开发人员,因为我是 Objective-C/iPhone/Cocoa 的新手。

我想创建一个类控制器,我可以将 NSMutableArray 作为参数传递。

然后,我们有:

其中这个 listOfIntervals 已经是一个 alloc/init NSMutableArray*。

在我的 SingleSelectPickerViewController 上,我们有:

通过调试,我可以看到在我的 SingleSelectPickerViewController 上创建了我的 listOfIntervals。

这里我们有 SingleSelectPickerViewController' dealloc:

但是,每次我实例化我的 SingleSelectViewController 时,我都会立即收到一个带有以下堆栈的 EXEC_BAD_ADDRESS:

知道发生了什么吗?

0 投票
2 回答
4928 浏览

cocoa - 我可以在不创建临时数组的情况下移动 NSMutableArray 中的对象吗?

我以为我有它,

当我移动 1 时,它会将 0,1,2,3,4 变为 0,2,3,4,1。

预期结果是 4,0,1,2,3

我觉得我错过了一些明显的东西......

更新:感谢 Matthieu,这就是我现在的功能。

我不知道你可以制作一个通用的 NSObject 并在其中放入一些子类。这一切都只是指针,所以我想没关系,对吧?

很难打破将这些对象视为袋子而不是指向袋子的指针的习惯。

0 投票
2 回答
220 浏览

objective-c - 在 Objective-C 中向表中添加一行

我是 Objective-C 的新手,尝试向表中添加新行时遇到了很多麻烦。它的工作方式是,当应用程序加载时会弹出一个警报,询问用户是否愿意,开始新配置,加载保存的配置,或恢复上一个配置。现在,如果他们选择开始新配置,他们将被要求输入新名称,当他们点击完成时,应用程序会将新配置保存在表格中。

现在我只能让应用程序在表中存储一个配置,但是如果用户尝试进行另一个新配置,那么应用程序就会崩溃。这是我的代码的样子:

我已经阅读了很多关于这些东西的内容,但这似乎并不应该太难。另外我觉得主要问题是“数组”只有一个索引,当用户尝试添加另一个索引时,这就是导致应用程序崩溃的原因。

有人可以帮助我并告诉我我做错了什么以及如何做对吗?请!...或者也许只是指出我正确的方向?

0 投票
1 回答
15431 浏览

iphone - 如何在不重用相同 NSArray 的情况下创建 NSArrays 的 Objective-C NSDictionary?

长期的 Windows 开发人员,第一次 Objective-C/iPhone 开发人员想要创建一个 NSArrays 的 NSDictionary,可以在带有字母部分的普通 UITableView 中显示。

这个数组字典的来源是一个包含按字母顺序排序的商店名称的数组:

Apple Store
Atlanta Bread Company
Borders
Build-A-Bear Workshop
Cargill Gallery
Dillards
Dick's Sporting Goods
Eddie Baure
FootLocker
GameStop
Heizberg Diamonds
LensCrafters
McDonald's
Nordstrom
Payless Shoe Source
Pottery Barn
Solstice
Starbucks Coffee
Victoria's Secret
White Barn Candle Co.

从源创建的数组字典应如下所示(括号中的数据类型):

Root(字典)
..A(数组)
........Apple Store(字符串)
........Atlanta Bread Company(字符串)
....B(数组)
... .....Borders (String)
....Build-A-Bear Workshop (String)
....C (Array)
....Cargill Gallery (String)
... .D (Array)
........Dillards (String)
....Dick's Sporting Goods (String)
....etc.

类似上述结构的数组字典填充 TableView 并显示如下:

A
Apple Store
Atlanta Bread Company
B
Borders
Build-A-Bear Workshop
C
Cargill Gallery
D
Dillards
Dick's Sporting Goods

我编写的创建数组字典的代码最终将最后一个商店(White Barn Candle Co.)放在每个节标题之后。

A
White Barn Candle Co.
B
White Barn Candle Co.
C
White Barn Candle Co.
D
White Barn Candle Co.

我意识到这种情况正在发生,因为我重用了一个临时数组,用 A 填充它,清除它,用 B 填充它,清除它等等。这是从源数组创建数组字典的实际代码。

我意识到我可以通过创建 26 个不同的数组并使用 switch 语句来选择要填充的正确数组来“蛮力”这一点,但我真的不想这样做。我认为更熟悉 Objective-C 的人可以为我提供更优雅的解决方案。

提前致谢。如果您需要更多信息,请告诉我。

0 投票
1 回答
1346 浏览

binding - 使用过滤谓词在 NSTableView 中获取选定行索引的问题

我不确定我的措辞是否正确,但基本上我在我的主应用程序委托中执行此操作:

应用程序 *app = [[应用程序分配] initWithApplication:fullPath]

Application 类有一个 initWithApplication 方法,它接受应用程序的路径,然后设置 appPath、名称等的属性。然后我将新的“app”对象添加到应用程序 NSMutableArray:

NSArrayController 的内容数组绑定到应用程序 NSMutableArray,然后在 NSArrayController 中设置各种键(appPath、name 等)。然后我有一个表格视图,其中各种列绑定到不同的属性,例如名称的一列,路径的一列等。

然后我有一个启动按钮,用于启动在表格视图中选择的应用程序。为此,我使用以下代码:

然后我只是使用“app.appPath”作为对当前选中项的路径的引用。这工作正常。当使用 filterPredicate 过滤表视图内容时,问题就出现了。基本上,它会过滤掉表格视图中的所有应用程序,只留下名称包含在搜索框中键入的短语的应用程序。

上面的方法不起作用,因为它在 table view 中获取 item 的索引,并且由于所有 item 都不在 table view 中,所以计数被弄乱了。例如,假设我有一个名为 MyApp.app 的应用程序,它是应用程序数组索引 25 处的项目。

上面的代码运行良好,因为 tableView 和 applications 数组具有相同数量的对象。但是,过滤掉表格视图的内容会导致对象数量的差异,因此它会启动错误的应用程序。

我希望我的解释不会太混乱,但很难解释。有什么办法吗?

谢谢