簡體   English   中英

該代碼是否泄漏內存(Objective-C全局變量)?

[英]Does this code leak memory (Objective-C global variables)?

如果這兩個函數被多次調用,它們會泄漏內存嗎? 我對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];
}

我將在這里應用單例模式 ,如果可能的話:使用ARC,這會使生活變得更加輕松。

如果您不太了解Objective-C和從事Non ARC項目,那么處理內存真的很困難。 如果將項目轉換為ARC,可能會有所幫助。 轉到Xcode->編輯->轉換-​​>到Objective-C ARC ...以這種方式將項目轉換為ARC,讓我知道是否有幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM