|
|
1
5
Cocoa Memory Management Rules . 管理器对象作为参数传入。您没有通过“新建”、“分配”或“复制”获得它,也没有保留它。所以你 放开它。 |
|
|
2
5
这是一个非常好的问题,我等了几个小时,希望有人能给出一个充分的答案,但因为没有人回答,我会尝试一下。首先,我会对你的方法进行评论,然后我会尝试建议如何解决这个问题。 释放对象肯定是一个非常糟糕的主意——因此从其委托中释放对象。只需考虑对象(如CuloCalpMaskor)如何调用他们的委托——他们只是在某种方法的中间调用它们。当对委托的调用完成时,代码的执行返回到已经被释放的对象的方法。砰!
让我们暂时忘记这是个坏主意这一事实。我认为有两种方法可以解决这个问题
修理
那很容易。第一,
那么,如果发布它不是一个好主意,那么它是什么呢? 那么,通过发布一个CLLocationManager,您真正获得了什么?释放这几个字节的内存并不能避免应用程序在系统内存不足时终止。不管怎样,你真的只需要一次当前用户的位置吗?
|
|
|
3
3
正如Michal所说,完全没有理由为了节省内存而发布manager对象。 但是,正确的做法是停止更新,并将managers委托设置为nil,就像您已经在做的那样。因此,您只需要删除[manager release]行。 我的猜测是,您正在本地范围内创建一个经理,因此正在尝试解决如何确保经理得到释放。这里正确的做法是创建一个管理器作为类的实例变量,然后在类dealloc中释放它。 |
|
4
1
|
|
|
George Kim · 如何在iOS中模拟特定坐标空间中的触摸? 2 年前 |
|
|
BENG · 协调C++和Objective-C中结构的填充 2 年前 |
|
|
Community wiki · iPhone上ivar的继承问题 3 年前 |
|
|
Community wiki · 在OpenGL中显示YUV 3 年前 |
|
|
YosiFZ · pod更新依赖关系pod 3 年前 |
|
|
Community wiki · 查找iOS日历 3 年前 |