iPhone ivar命名约定[重复]

2023-12-13

可能的重复:
可可 Objective-C 类中变量前面的下划线如何工作?

我注意到,在很多参考资料中,我发现很多时候,变量在 .h 文件中被命名为 _variable,然后在 .m 文件中被 @synthesize'd 为

@synthesize variable = _variable;

为什么要这样做?我缺少什么?

Thanks!


对此尚无共识。有些人喜欢使用它来清楚地分离出类变量,并且正如另一位响应者指出的那样,以避免与传入参数名称发生冲突。即使在 Apple 示例代码中,使用也是混合的。

但是,我非常不想使用_前缀并有两个强有力的理由:

1)有些人认为_是“私人”的良好指标。我的看法是,没有 setter/getter (属性)就不应访问任何类局部变量,因此它们都是私有的 - 鉴于为什么不以更易于阅读和使用自动完成的方式命名它们呢?参数名称中的任何重叠都会被编译器快速发现,并通过更周到的参数(或内部变量)命名来避免。

2)(更好的理由)-如果您在 XCode 中对内部类 var 使用“重构”,并且该内部类 var 的名称与用于访问它的属性相同,则属性和合成语句也将被重命名。如果对前缀为 的类变量使用重构_,属性名称不会更改 - 只是综合映射到内部名称。我几乎不希望名称从属性到它公开访问的实际变量有所不同。仅此一点就让我永远不想使用_作为变量前缀,因为能够移动名称几乎是提高代码清晰度所能做的最有用的事情。

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

iPhone ivar命名约定[重复] 的相关文章

  • 无法将 NSMutableDictionary 发送到另一个类

    All 我试图将 NSMutableDictionary 响应 发送到我的另一个类 或者更确切地说 让另一个类从这个类中提取字典 当另一个类使用 getResponse 方法时 它返回 null 我附加的代码是我的 XML 解析器 它将我需
  • 预填充 UICollectionView 单元重用队列

    问题 我有一个应用程序 只有一个UICollectionView我第一次滚动它时很卡顿 我已将来源范围缩小到正在创建新单元格 2 的事实 使用initWithFrame 因为周围没有可以重复使用的细胞 初始滚动后 重用队列不为空 单元格可以
  • 如何处理 iPhone 屏幕尺寸/背景图像分辨率

    在 iPhoneX 之后 我真的很纠结于支持所有设备的图像尺寸和命名约定 有没有办法在 4 7 5 5 和 5 8 屏幕上使用 3x 图像 全屏图像视图应该使用的确切尺寸是多少 您可以使用图像 pdf格式 因此您只需要管理 1x 的单比例图
  • 特别分发:应用程序安装失败

    我已经为我尝试分发的应用程序创建了一个临时存档和一个 ipa 文件 我还创建了一个分发配置文件 其中包含我计划将应用程序分发到的设备的 UDID 当我将 ipa 和 mobileprovision 文件拖到 iTunes 中并尝试将应用程序
  • 如何以编程方式创建选项卡栏

    大家好 我有基于导航的应用程序 其中我也需要在视图之一中实现选项卡栏 在一个视图中我需要 5 个选项卡 有人可以建议我以编程方式创建选项卡栏吗 每个选项卡应导航到另一个 xib 建议始终受到赞赏 问候 以下是 Apple 提供的用于以编程方
  • 帮助在 UIWebView 中使用 Javascript 代码

    我想在 webView 中运行以下代码 以便内容可编辑 javascript document body contentEditable true document designMode on void 0 到目前为止 我已经尝试过这个 v
  • 应用程序:didReceiveRemoteNotification:未调用 fetchCompletionHandler

    出现了这个功能application didReceiveRemoteNotification fetchCompletionHandler当应用程序被强制退出时不会被调用 我的印象是 无论应用程序处于什么状态 该函数都会被调用 但似乎只有
  • 在 iOS 7 中查看 Core Data 创建的 sqlite 文件时出现问题

    当我尝试访问由核心数据创建的数据库文件时遇到问题 DB 文件位于 Documents 文件夹中 我已将其复制到桌面并使用 Firefox 插件打开它 Hello sqlite文件不包含任何行我有使用核心数据插入值 我正在使用 iOS 7 模
  • 如何本地化 iOS 故事板

    我有一个包含一些视图的 iPhone 故事板 例如 导航项标题名为News 应翻译为其他语言 当我向故事板添加新的本地化版本时 它会为新语言创建当前故事板的副本 在这里我可以更改导航项的标题 但对我来说它似乎不太有用 如果我的故事板包含 1
  • 为什么 iPhone 应用程序的 main() 函数没有机会完成?

    考虑以下main 大多数 iPhone 应用程序都采用以下方法 int main int argc char argv NSAutoreleasePool pool NSAutoreleasePool alloc init int retV
  • 如何将 NSMutableArray 添加到 NSMutableArray Objective-c

    我正在从 Java 切换到 Objective c 但遇到了一些困难 我已经搜索过这个问题但没有取得太大成功 我有一个存储 NSMutableArrays 的 NSMutableArray 如何向数组添加数组 您可以在数组中存储对另一个数组
  • 从设备获取联系人列表时出现问题

    这段代码有什么问题 NSMutableArray contactArray NSMutableArray alloc init ABAddressBookRef addressBook ABAddressBookCreate CFArray
  • 自定义 UINavigationController UINavigationBar

    基本上我想要一个定制UINavigationBar 我不希望它是 半透明 或任何东西 就像图片应用程序一样 我基本上想完全删除它 但我仍然希望能够在按下导航控制器时添加后退按钮等 并且我想要视图 例如 UITableViewControll
  • 按升序对 NSDictionary 进行排序

    我正在尝试排序NSDictionary按升序排列 我正在使用这段代码 NSDictionary valDict self mGetDataDict key rowKey for NSString valueKey in valDict al
  • iOS - 在相机上放置自定义叠加层(垂直对齐)。顶部黑条的大小

    我正在寻找以下问题的编程解决方案 我想在相机 iOS 上绘制自定义叠加层 我希望它位于相机输出视图的垂直中央 我已经完成了相对于屏幕而不是相机图片居中绘制自定义视图 为此 我需要获得顶部黑条的大小 我怎么才能得到它 顶部和底部栏的大小不相等
  • SDK 和 iOS 部署目标。

    我使用最新的 SDK 4 1 构建项目并设置 iOS 部署目标 3 0 如果我使用4 0 sdk的某些方法 我可以在真正的iPhone 3 0上运行我的项目吗 您只能在 OS 3 设备上运行您的项目 如果有条件地编码围绕您想要使用的 OS
  • 使用 Dirac 在 iPhone 中进行实时音高变化 [重复]

    这个问题在这里已经有答案了 可能的重复 iPhone 上的实时音调变换 https stackoverflow com questions 1100495 real time pitch shifting on the iphone 我已经
  • 使用ios sdk在youtube上上传视频的方法[重复]

    这个问题在这里已经有答案了 可能的重复 如何从 iOS 应用程序中将视频上传到 YouTube https stackoverflow com questions 3528568 how do i upload a video to you
  • 隐藏 UITableview 单元格

    我正在尝试从 UITableView 中隐藏单元格 就像删除操作一样 但我只想隐藏它以便稍后在相同位置显示它 我知道 UITableViewCell 有一个名为 隐藏 的属性 但是当我使用此属性隐藏单元格时 它会隐藏但没有动画 并且会留下空
  • 带有自定义字体的 UILabel 错误呈现

    在我的 iPhone 应用程序中 我为所有 UILabel 设置了自定义字体 更准确地说 我对 UILabel 进行了子类化 重写了一个方法 在该方法中设置了自定义字体 然后将 IB 中的所有标签设置为该自定义类 现在的问题是 所有文本都渲

随机推荐

  • 正则表达式:匹配除一个单词之外的所有内容[重复]

    这个问题在这里已经有答案了 我正在寻找一种正则表达式模式 它可以匹配除一个单词之外的所有内容 例如 决议 monitors resolutions Should not match monitors 34 Should match moni
  • 从 C 代码设置 ALSA 主音量

    我一直在寻找一个简单的 C 代码示例来设置 ALSA 混音器的主音量 但找不到任何简单的内容来完成这个所谓的常见操作 我对 ALSA 完全不熟悉 所以制作我自己的最小示例需要时间 如果有人能提供一个 我会很高兴 以下内容对我有用 参数体积应
  • PHP SQL 更新数组

    我最初对以下内容感到满意 以便将第 1 行和第 2 行更新为相同的值 status 1 if POST sql UPDATE table SET status 1 WHERE id IN 1 2 db gt query sql if db
  • 正则表达式在匹配链接行为时删除 - Python

    我想删除整个链接 https www linkedin com in ACoAAAJv1l4BATlBOVqhEEaqrVNojJPWnID9Nk0 当链接包含ACo正则表达式应该从我的模式中删除整个链接 regex2 re compile
  • Asp.net 功能中是否存在带有验证器的电子邮件?

    我的要求是 如果用户在 asp net 文本框中输入电子邮件 它应该从数据库进行验证 该电子邮件是否存在 并且应该停止提交表单 是否有任何内置功能或者我必须自己制作 谢谢 阿提夫 你必须自己做 您可以按如下方式使用 AJAX
  • SQL Server:批量加载失败。数据文件中第 1 行第 1 列的列太长

    请有人在这里帮助我 已经看了几个小时了 但没有任何结果 我使用以下脚本在 SQL Express 2008 R2 中创建了一个表 CREATE TABLE Features ID int not null identity 1 1 Stop
  • 在 Delphi XE2 上使用运行时包进行构建

    我发现了类似的问题 但没有找到答案 问题是如何轻松地将所有已安装的运行时包添加到 Delphi XE2 项目中的 项目选项 包 运行时包 列表中 在 XE 和早期版本中 您可以通过简单地选中 取消选中 使用运行时包构建 来完成此操作 这些包
  • IntelliJ 在提交后显示 GIT 差异

    首先 我创建新分支 然后 我在类中添加一个新的代码行 Intellij 在左侧显示了我添加的新行的不同颜色 然后 我提交我的代码 此后 IntelliJ 不再显示我在左侧添加了新行 我不想要这样 我如何配置 IntelliJ 以便它显示与之
  • Doctrine 实体管理器导致页面中断

    我是 Symfony2 的新手 并尝试显示一个列出实体项目的页面 但是 一旦我使用下面的代码 分页符就会出现 未收到数据错误 或 ERR EMPTY RESPONSE 导致我认为我的路线不起作用并引发问题here但问题与教义有关 publi
  • Java 中希尔排序算法的变体

    有没有办法计算 for 循环的起点及其调整 原始循环有这些条件 for int gap a length 2 gap gt 0 gap 2 我调整它来设置希巴德希尔排序的条件并得到这个 for int gap int Math pow 2
  • 如何在 Rails 中渲染不同格式的一部分?

    我正在尝试生成包含一些 HTML 的 JSON 响应 因此 我有 app views foo bar json erb someKey some value someHTML 我想要它渲染 app views foo baz html er
  • 根据键值将数组拆分为更小的数组?

    我有在我的网站上执行关键字搜索的 mysql 搜索结果 它们按会员级别 0 3 排序 然而 我需要以不同的方式显示排名 比如排名 3 的格式比其他排名更突出 我正在考虑将行分成单独的数组 因此 像 array0 将包含排名为 0 的所有行等
  • 如何使用另一个字段登录 Django Allauth?

    我已经设置成功了django allauth以及自定义用户模型 让用户直接使用电子邮件和密码或通过 Facebook 登录 在这种情况下 电子邮件从 Facebook 获取并保存在自定义用户模型的电子邮件字段中 我还创建了一个移动字段 目前
  • 为什么 setTimeout(fn, 0) 有时很有用?

    我最近遇到了一个相当讨厌的错误 其中代码正在加载一个
  • 为了防止内存泄漏,已强制取消注册 JDBC 驱动程序

    当我运行网络应用程序时 我收到此消息 它运行良好 但我在关机期间收到此消息 严重 Web 应用程序注册了 JBDC 驱动程序 oracle jdbc driver OracleDriver 但在 Web 应用程序停止时无法取消注册 为了防止
  • C# ASP.NET MVC 手动访问 Request.Form 和潜在危险值

    我正在针对每个用户请求将表单和查询字符串数据序列化并保存到数据库中 这个特定的提交模型已经具有 AllowHtml 属性 并且可以很好地提交给控制器 问题出在我记录请求的 Global asax 文件内 当我访问此表单值时 出现异常 从以下
  • .BAT 文件中未读取 SET 变量

    我有这个 Windows 批处理文件 但无法正常运行 基本上 我在一个位置有一个文件夹 我需要将其复制到另一个文件夹 但还要重命名新文件夹名称 Echo off set 836147398 Taunus A3 Echo Copying 83
  • 如何以正确的顺序导入Scrapy项目密钥?

    我正在导入 Scrapy 项目密钥items py into pipelines py 问题是order导入的项目与它们在中的定义方式不同items py file My items py file class NewAdsItem Ite
  • 如何使用 python 创建字典列表

    我有一个函数返回一个列表 我在其中序列化为 json 对象并将其写入 JSON 文件 结果是正确的 但问题是它返回分隔列表中的每条记录 我想要的是返回一个包含多个字典项的列表 example 返回结果 file Name test1 txt
  • iPhone ivar命名约定[重复]

    这个问题在这里已经有答案了 可能的重复 可可 Objective C 类中变量前面的下划线如何工作 我注意到 在很多参考资料中 我发现很多时候 变量在 h 文件中被命名为 variable 然后在 m 文件中被 synthesize d 为