标签: memory-management

为什么这个发布的视图控制器在发出消息时不会导致崩溃

- (void)applicationDidFinishLaunching:(UIApplication *)application {

    // Create the navigation and view controllers
    RootViewController *rootViewController = [[RootViewController alloc]
                                              initWithStyle:UITableViewStylePlain];
    UINavigationController *aNavigationController = [[UINavigationController alloc]
                                             initWithRootViewController:rootViewController];
    self.navigationController = aNavigationController;
    [aNavigationController release];
    [rootViewController release];

    [rootViewController setRegions:[Region knownRegions]];

    // Configure and display the window
    [window addSubview:[navigationController view]];
    [window makeKeyAndVisible];
}
Run Code Online (Sandbox Code Playgroud)

这里,在上面的代码中,引用'rootViewController'用于发送消息'setRegions:',即使在上一行中释放了对象之后也是如此.

如果它是错的那么模拟器如何运行而没有任何崩溃?或者如果它是正确的,又如何?,我看不出自动释放和释放之间的区别.

消息来源: - http://developer.apple.com/iphone/library/samplecode/TableViewSuite/listing12.html

下载: - developer.apple.com/iphone/library/samplecode/TableViewSuite/index.html

iphone memory-management objective-c

0
推荐指数
1
解决办法
152
查看次数

当你返回泄露的内存时修复内存泄漏?

如何从漏洞本身返回的函数中修复内存泄漏?

例如,我创建一个char* returnMe = new char[24324];returnMe,最终从函数返回.你如何解释这个内存泄漏?一旦它被退回,你怎么摧毁它?我有一些内存管理规则,在内存泄漏上抛出运行时错误来阻止它,所以我不能忽略它.

Orrr我是一个傻瓜,这不是泄漏,暗示泄漏在其他地方?

c++ memory-leaks memory-management

0
推荐指数
1
解决办法
583
查看次数

C:没有显式返回构造的结构,但它仍然有效

我编写了一个'构造函数'函数,它在C语言中创建一个Node,使用Visual Studio 2008,ANSI C模式编译.

#include <stdio.h>
#include <stdlib.h>

typedef struct _node
{
  struct _node* next ;
  char* data ;
} Node ;

Node * makeNode()
{
  Node * newNode = (Node*)malloc( sizeof(Node) ) ;

  // uncommenting this causes the program to fail.
  //puts( "I DIDN'T RETURN ANYTHING!!" ) ;
}

int main()
{
  Node * myNode = makeNode() ;
  myNode->data = "Hello there" ;

  // elaborate program, still works

  puts( myNode->data ) ;

  return 0 ;
}
Run Code Online (Sandbox Code Playgroud)

令我惊讶的是:

  • *不从makeNode()返回值只是一个警告,
  • *更令人惊讶的是makeNode()_ …

c memory-management

0
推荐指数
1
解决办法
179
查看次数

C++中的动态内存分配

关于动态内存分配,'delete'和'dispose'C++运算符之间有什么区别?

c++ memory-management managed-c++

0
推荐指数
1
解决办法
631
查看次数

如何在异步NSURLConnection中处理NSZombies?

我目前异步使用NSURLConnection几个UIViews(每个视图句柄NSURLConnection作为委托).我遇到的问题是当用户切换视图太快并且委托成为NSZombie应用程序崩溃时 - 这是NSURLConnection不再有活代委会.那么,第一个问题是,是否有办法绕过这个?

第二个问题很简单 - 我该如何处理NSZombie?简单if(myObject != nil)..根本不起作用.

iphone memory-management nsurlconnection nszombie

0
推荐指数
1
解决办法
504
查看次数

"32位操作系统","32位处理器":这些术语究竟是什么意思?

"32位操作系统","32位处理器"的确切含义是什么?

  • 它会影响地址总线的大小吗?
  • 它是否会影响可以生成的虚拟地址数量?
  • 它如何影响寄存器大小意味着寄存器大小?
  • 它对虚拟内存/内存管理有何影响

我是这个领域的初学者; 如果你有任何合适的文件,请指出我.

谢谢.

operating-system memory-management computer-architecture virtual-memory

0
推荐指数
1
解决办法
2083
查看次数

如何在C++中使用my_alloc进行_all_新调用?

想象一下,我在C-land,我有

 void* my_alloc(size_t size);
 void* my_free(void*);
Run Code Online (Sandbox Code Playgroud)

然后我可以浏览我的代码并用my_alloc/my_free替换所有对malloc/free的调用.

怎么,我知道了一个Foo课,我可以做新的安置; 我也可以重载新运算符.但是,有没有办法为我的所有 C++类做到这一点?(即我想为新的和新的[]使用我自己的分配器;但我不想破解并破解我定义的每个类.)

谢谢!

c++ constructor memory-management new-operator

0
推荐指数
1
解决办法
360
查看次数

为什么我的Cocoa应用程序使用了如此多的虚拟内存?

我写了一个简单的Cocoa应用程序.在Activity Monitor中,它显示使用的虚拟内存比所有其他应用程序多得多:304.6MB.(它从一开始就使用它,所以我认为这不是内存泄漏/管理问题).就像Firefox,Mail等只使用30MB-60MB左右.我的应用程序使用13MB实内存.

我正在使用垃圾收集.我链接到AppKit.framework.这是正常的还是我做错了什么?

cocoa memory-management

0
推荐指数
1
解决办法
450
查看次数

iPhone:如何修复一个真正糟糕的内存管理的传统iPhone应用程序?单元测试?

我最近继承了一个iPhone应用程序.最初的开发人员并不了解内存管理,而且应用程序在simlulator中运行,但在旧的iPhone上却没有(很多崩溃).您对我可以保存应用程序的过程有任何想法吗?

我可以利用或创建任何单位测试来查找内存泄漏并使过程"科学"吗?

谢谢

iphone cocoa-touch unit-testing memory-management objective-c

0
推荐指数
1
解决办法
129
查看次数

在Objective-C中返回对象时,retainCount应该是什么?

见标题.更具体地说,我试图返回一个对象的mutableCopy,但是它返回的retainCount为1,我担心它会泄漏.

iphone memory-leaks memory-management objective-c

0
推荐指数
1
解决办法
167
查看次数