NSMutable 数组 - 分配和保留对象
我需要一些有关如何分配、保留对象的信息。
例如 - 如果我们有两个视图控制器并且需要将数组数据从 viewcontrlr 1 传递到 viewContrl 2,我们如何将对象从视图 1 发送到视图 2 并在视图 1 中释放它并在视图 2 中保留它。
一个简单的 =运算符只是分配再次指向视图 1 对象的地址。当从视图 1 传递时,我们可以释放视图 1 中的 obj 并在视图 2 中保留新对象,最好的方法是什么。
I need some info about how to assign, retain objects.
For example - if we have two viewcontrollers and needed to pass an array data from viewcontrlr 1 to viewContrl 2, how can we send the object from view 1 to view 2 and release it in view 1 and retain it in view 2.
A simple = operator is just assigning the address which again points to view 1 object. What is the best way so we can release obj in view 1 and retain a new object in view 2 when passed from view 1.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在视图控制器 2 中创建一个 NSMutableArray 并为其声明一个保留属性。
然后在您的视图控制器中,您可以通过以下方式传递它:
并且可以安全地释放它:
[编辑以解决您的评论]
当您为 mutableArrayInVC2 声明保留属性并将 mutableArrayInVC1 传递给它时,“在幕后”,您正在通过其 setter 方法访问变量,如下所示:
希望它有意义!
罗格
Create a NSMutableArray in your view controller 2 and declare a retain property for it.
Then in your view controller one you can pass it with:
And it's safe to release it with:
[EDIT TO ADDRESS YOUR COMMENT]
When you declare a retain property for your mutableArrayInVC2 and pass mutableArrayInVC1 to it, "behind the scenes" you are accessing the variable via its setter method as per below:
Hope it makes sense!
Rog
另外,您可能还想查看 本文了解有关保留计数机制的一般信息。它与 Mac OS X 的 Cocoa 编程 中的内容非常相似,IMO 就是其中之一关于 Cocoa 和 Obj-C 的最佳入门书籍。我不确定您对 Obj-C/Cocoa 有多少经验,但如果您正在寻找此类介绍,那么这是一个很好的起点。
Also, you may want to check out this article for info on retain count mechanisms in general. It's very similar to what's in Cocoa Programming for Mac OS X which IMO is one of the best intro books on Cocoa and Obj-C in general. I'm not sure how much experience you have with Obj-C/Cocoa but if you're looking for that kind of intro it's a great place to start.