处理自动合成的属性时如何使用dealloc?

2024-02-26

我对 iOS 开发还比较陌生,所以如果这是一个弱智的问题,请原谅我。我读了this http://useyourloaf.com/blog/2012/08/01/property-synthesis-with-xcode-4-dot-4.html但我还是有点困惑。

我没有使用ARC。 (是的,我知道我应该,但我现在不这样做)在我的类标题中我有这个

/*-----------------------------------------------------------------------+
 | The name of the sender/receiver
 +-----------------------------------------------------------------------*/
@property (nonatomic, retain) NSString *name;

我不合成这个变量,而是让编译器完成这项工作。

以下哪项被认为是最佳实践dealloc method

#1释放 iVar

-(void) dealloc {
   [_name release];
   [super dealloc];
}

#2解除分配该属性

-(void) dealloc {
   [self.name release];
   [super dealloc];
}

#3最后一个问题。通常是设置property to nil in the dealloc方法? IE。

-(void) dealloc {
   [self.name release];
   self.name = nil;
   [super dealloc];
}

如果有人能向我解释这一点,我将非常感激。

Regards!


Jeff Lamarche 写了一篇关于在 dealloc 中释放变量的好文章:http://iphonedevelopment.blogspot.nl/2010/09/dealloc.html http://iphonedevelopment.blogspot.nl/2010/09/dealloc.html

他建议永远不要使用self.语法,因为它可能会在多线程环境中导致问题。

他的建议是使用iVar并设置为nil在生产版本中:

-(void) dealloc {
   [_name release], _name = nil;
   [super dealloc];
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

处理自动合成的属性时如何使用dealloc? 的相关文章

  • 是否可以在 Objective-C 中调用 Swift 便利初始化器

    假设我在 Swift 中有一个方便的初始化器 extension UIImage convenience init bundleNamed name String let bundle NSBundle forClass Foo self
  • GIT 中的 Fastlane 应用程序文件?如何检索当前的 apple_id?

    我为我的 XCode 项目设置了 Fastlane 来实现构建自动化 至少 Fastfile 包含构建选项 应该位于 GIT 中 但我也很高兴 Appfile 团队标识符 也位于 GIT 中 主要问题 Appfile 应该包含我的 appl
  • 如何在 Xcode 8 中更改应用程序显示名称以添加空格

    我试图在 Xcode 8 中的应用程序名称 独立贴纸包 中添加一个空格 我在这里看到的解决方案是更改产品名称 在包装中 或更改 捆绑显示名称 我更改了产品名称 但没有起作用 我清理 重建 重置模拟器中的内容和设置 并注销 xcode 重新登
  • Phonegap Cordova Statusbar 插件创建双栏

    我正在开发一个使用phonegap 的应用程序 通过 CLI 构建 而不是 PhoneGap 构建 我的 cordova plugin statusbar 插件有问题 打开时它将增加额外的条高度 这是它的样子 双高菜单栏 我通过两种方式实现
  • 如何解决这个错误? - 类“ViewController”没有初始化程序

    我创造了UILabel快速编程 但它给了我以下错误 类 ViewController 没有初始值设定项 Code class ViewController UIViewController let lbl LastName UILabel
  • 使用 Objective-C 获取 Photoshop 的动作列表

    我正在使用 C 和 Obj C 编写一个与 Photoshop 交互的 OSX 应用程序 我一直在使用NSAppleScript使用动态构建的 AppleScript 来驱动 Photoshop 是的 这有点可怕 我希望能够以不同的方式驱动
  • iPhone存储然后从Documents文件夹中读取文件

    这一定很容易 但我想将一个文件放在 文档 文件夹中 该文件在启动时读入 我有关于如何阅读的代码 并已确认其在正确的目录中查找 但是 当我保存在 xcode 中的 Resources 文件夹中时 我的文件 RootList txt 存储在 R
  • AVAudioPlayer 在 iPhone 5 中无法工作

    我正在开发一个 iPhone 应用程序 在这个应用程序中 我使用 AVAudioPlayer 来播放音频 这是我播放声音的代码 NSString resourcePath NSBundle mainBundle resourcePath r
  • 以编程方式设置 UITabBarItem 标题?

    我的应用程序基于标签栏架构 为了有一个简单的国际化机制 我不在 XIB 文件中写入任何字符串 viewdidload 允许以编程方式更改视图中的字符串 当我的应用程序启动时 我可以看到 4 个选项卡 但实际上只有第一个加载其视图控制器 其他
  • 旋转时自动调整 AVCaptureVideoPreviewLayer 大小的问题

    我编写了一个静态框架 其中有一个名为 ViewfinderViewController 的类 它使用 AVCaptureSession 设置相机 此 ViewController 还将 AVCaptureVideoPreviewLayer
  • 越狱的 iOS 从后台应用程序截图

    我正在为自己构建一个实用程序应用程序 当该实用程序在后台运行时 它可以截取前台运行的任何内容的屏幕截图 该实用程序将在越狱设备上运行 因此它可以访问私有 API 而不受沙箱的限制 由于实用程序应用程序在后台运行 作为守护程序或使用后台程序
  • 正常运行时间 iOS Objective-C - 毫秒精度

    我正在努力争取 iOS 的正常运行时间 我正在使用 mach absolute time 但我发现它在睡眠期间暂停 我找到了这个片段 time t uptime struct timeval boottime int mib 2 CTL K
  • WatchOS 应用程序未检测到配套的 iOS 应用程序

    我正在制作一个独立的Apple Watch应用程序 但有一个配套的iPhone应用程序 这对于手表应用程序的运行来说不是必需的 该应用程序使用手表连接如果安装了 iPhone 配套应用程序 则可以在设备之间同步数据 我可以打电话sessio
  • Gmail 应用程序中指向特定邮件的深层链接

    我成功地从 gmail api 获得了消息网址 https mail google com mail email protected cdn cgi l email protection all 155134b5e66a9b06 然而 当我
  • 如何强制重装iOS模拟器?

    我想下载模拟器组件 Xcode 6 2 但在下载过程中我的互联网连接丢失了 Xcode 仍然显示我已经安装了 7 1 模拟器 你知道如何强制重装iOS模拟器吗 我已完成以下步骤 从 Library Caches com apple dt X
  • iOS - 确保在主线程上执行[重复]

    这个问题在这里已经有答案了 我想知道如何打电话给我function on the 主线程 我如何确保我的function被称为主线程 这是继之前的question https stackoverflow com questions 1105
  • -[NSCFString objectAtIndex:]:无法识别的选择器

    我有一个小问题 在谷歌中找不到 UITableView工作正常 直到我开始滚动 Error Message NSCFString objectAtIndex unrecognized selector sent to instance 0x
  • 无法转换“String!”类型的值预期参数类型错误

    我有一个公共职能 public func lastActivityFor userName String gt String 后来我想将其称为 OneLastActivity lastActivityFor username 但最后一行出现
  • iOS 11.x 系统颜色

    我读过很多关于如何自定义视图颜色的文章 但没有任何关于检索标准控件 如 iOS 11 x 或以前版本中的导航栏 状态栏和选项卡栏 的系统颜色的文章 UIColor 类有 3 种系统颜色 但它们几乎没有用 例如 调用 UINavigation
  • 在 Facebook 墙上添加照片

    void postToWall FBStreamDialog dialog FBStreamDialog alloc init autorelease dialog userMessagePrompt NSString stringWith

随机推荐