ios - 这段代码是否泄漏内存(Objective-C 全局变量)?

标签 ios objective-c memory-leaks

这两个函数调用多次会不会内存泄露?我对 Objective-C 的了解非常初级。他们对我来说似乎很好,但我对该实现感觉不太好?我应该删除那个“保留”吗? 这是全局存储对象的正确方法吗?

NSString* g_code = nil;

NSString* GetCode()
{
  if (!g_code)
  {
     std::string code = HelperFuncs::getCode();
     g_code = [[NSString stringWithUTF8String:code.c_str()] retain]; 
  }
  return g_code;
}

NSDictionary* g_options = nil;

- (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo
{
    g_options = [[NSDictionary alloc] initWithDictionary:userInfo];
}

最佳答案

我会在这里申请 singleton pattern如果可能的话:使用 ARC,这会让生活变得更轻松。

关于ios - 这段代码是否泄漏内存(Objective-C 全局变量)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30529784/

相关文章:

jquery - Iframe 垂直滚动在 iOS 移动设备中不起作用

ios - 如何返回 Storyboard上的第一个 View Controller ?

c++ - 通过 IShellFolder 接口(interface)枚举打印机文件夹导致堆分配泄漏

iphone - 删除iOS应用程序中的cookie

ios - 应用更新后重新显示推送通知弹出窗口

ios - PLCrashReporter ios6 崩溃

objective-c - 在 iPhone 上使用 Objective C 将视频上传到 Vimeo

objective-c - 如何访问从另一个类的 nib 文件加载的 NSWindow 的实例属性?

PHP "Uninclude"或从内存中删除?

c++ - 如何删除指针的 STL 列表?