var->myProperty 和 var.myProperty 之间的区别

2024-04-23

我是 Objective C 的新手,我有一些疑问。我发现您可以访问类的属性,例如var->我的属性也喜欢那样变量.myProperty,但我不知道2之间有什么区别。我在互联网上搜索了很多,但确实没有找到确凿的答案。

抱歉,如果我有拼写错误,请提前致谢。


需要考虑三种情况:

  • use of someObject.something

  • use of self->something

  • use of otherObject->something

someObject.something is the 点语法。它完全相当于[someObject something]在行为方面。这是一个方法调用。注意something不必通过声明@property。那是,someArray.count or someString.length两者在语法上都是有效的。

self->something正在直接访问 ivar。这是一种很少使用的语法;罕见的是在几乎从来没有。相反,只需使用直接访问 ivarsomething = or [something doSomething]。无需->.

otherObject->something正在四处搜寻otherObject的实例变量直接。糟糕的程序员。没有甜甜圈。不要那样做。它破坏了封装并导致代码极其脆弱且难以维护。


注释@property声明。如果你有:

 @property (atomic, strong, readonly) SomeClass *foo;

如果你让编译器自动@synthesize一切,它将创建一个名为的实例变量_foo.

您应该在您的init and dealloc方法,但通常(但并非总是)在其他地方使用 setter/getter。 IE。在你的init你会做_foo = [SomeClass someClassWithSomeMagicValue:42](假设 ARC,所以没有retain需要)。在其他地方,你会这样做[[self foo] castMagic];.

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

var->myProperty 和 var.myProperty 之间的区别 的相关文章

  • spring boot:如何动态设置 spring 属性

    Spring Boot应用程序的application properties中可以定义很多属性 但我想传递属性以将 ssl 配置为从代码内部启动 server ssl enabled true The format used for the
  • 如何在ios中重置触摸、触摸移动的NSTimer

    我正在开发一个应用程序 其中我必须在 3 秒后隐藏控制按钮 所以我使用 NSTimer 编写代码 然后开始触摸 它可以工作 但问题是 当我再次触摸任何其他按钮时 我的计时器不会重置 即使我像拖动一样移动我的触摸示例 如果我拖动或移动触摸 它
  • 将 CSS 框阴影转换为 iOS 阴影

    有谁知道我如何转换box shadowObjective C 中 UIButton 上的阴影 例如这个阴影 box shadow 2px 0 0 0 46d466 2px 0 0 0 46d466 0 2px 4px 0 rgba 0 0
  • 如何在iPhone模拟器中更改时间和时区?

    如何更改时间和时区iPhone http en wikipedia org wiki IPhone模拟器 我猜它使用您的系统时区 因此更改系统偏好设置中的 TZ 可能会成功
  • Objective-c:如何创建不同深浅的颜色

    是否有任何算法可以为给定的十六进制或 RGB 值创建不同的阴影 我尝试过增加和减少 alpha 但浅色 例如 白色 看起来不太好 实现此目的的最佳方法是使用 HSB 色彩空间 这就是我在最新的应用程序中完成键盘左手部分的方式 颜色的 阴影
  • 使用 MPVolumeView 滑块调整音量时隐藏设备音量 HUD 视图

    我在 iPad 应用程序中使用 MPMoviePlayer 实现视频播放器 使用 MPVolumeView 进行音量控制 我的问题是 当我滚动音量视图来调整音量时 会显示设备的音量平视显示器覆盖 如下面的屏幕截图所示 如何禁用此系统音量指示
  • UIModalPresentationFormSheet 的圆角

    如果这是一个明显的问题 请原谅我 我是个相对较新的人 我有一个模态视图 我设置了自定义尺寸和圆角 void viewWillLayoutSubviews super viewWillLayoutSubviews self view supe
  • 获取运行时提供的类名的 n 维数组的类

    给定一个完全限定的类名和多个维度 我想获取该类的类名 我相信我可以这样做 public Class elementType Class forName className return Array newInstance elementTy
  • 具有多个嵌入 Segue 的 ContainerView

    有没有办法让单个 ContainerView 具有多个嵌入序列 目的是让 ContainerView 根据按下的按钮来容纳一些不同的 ViewController 一次只能看到一个 我想使用嵌入序列 以便在 Interface Builde
  • 如何处理 iPhone 4s、5 和 6 屏幕尺寸,并使所有内容在所有设备上看起来相同

    我正在使用 Xcode 6 1 并且在我拥有的视图之一中包含许多标签 然而 这些标签在不同的设备中看起来不同 尽管我已经对所有标签添加了约束 但仍然面临同样的问题 如何在所有设备上获得相同的视图布局 如何使每个标签的宽度和高度灵活 取决于屏
  • UITableView 显示的行数多于 numberOfRowsInSection 中指定的行数:

    我希望我的 tableView 显示 6 行 其中包含文本 在本例中为 示例 据我所知 我有我的numberOfSectionsInTableView and numberOfRowsInSection 设置正确 请参阅下面的示例代码 NS
  • 仅在满足条件时添加到字典

    我在用urllib urlencode构建 Web POST 参数 但是有一些值我只想在除None为他们而存在 apple green orange orange params urllib urlencode apple apple or
  • 保存时出现 iphone 核心数据未解决的错误

    尝试保存时 我从核心数据中收到一条奇怪的错误消息 但问题是错误不可重现 在执行不同任务时 它会在不同时间出现 错误消息 Unresolved error Domain NSCocoaErrorDomain Code 1560 UserInf
  • 使用动画更改 UIView 背景颜色

    我想改变我的UIView带有过渡动画的背景颜色 例如 如果视图是红色的 我将其更改为蓝色 蓝色将从屏幕底部向上滑动到顶部并充满整个屏幕 我想通过制作一个来做到这一点UIView具有相同大小和所需颜色 然后将其从屏幕外一直动画到顶部 但这似乎
  • iOS 中的 FacebookSDK 不显示关闭按钮且无法关闭

    您好 我已经为 iOS 6 应用程序集成了 Facebook SDK Facebook 身份验证和共享工作完美 但没有提供关闭 FB 对话框的规定 当FB对话框打开时 只有在身份验证成功后才会关闭 没有关闭或导航回来的规定 我如何制作关闭按
  • 从 UIImagePickerControllerReferenceURL 加载 UIImage

    我正在使用 UIImagePickerController 来允许用户从图像库中选择图像 然后我想在 sqlite 数据库中启动该文件的位置 以便稍后可以参考它 我一直在谷歌上搜索如何做到这一点 但我的结果相当简短 我知道我可以通过调用委托
  • 如何在 iPhone 应用程序中播放来自服务器的视频 URL

    实际上 我通过使用从服务器获取一个网址XMLParser 我想在我的应用程序中播放这个视频网址 现在我使用了 MPMoviePlayerController 但它不起作用 请帮忙 XML解析器 m id loadXMLByURL NSStr
  • angular.copy() 和 JSON.parse(JSON.stringify()) 之间的区别?

    有人可以解释 angular copy 和 JSON parse JSON stringify 之间的区别吗 有吗 您会推荐使用什么 angular fromJson angular toJson 与 JSON parse JSON str
  • 操纵 setter 以避免 null

    通常我们有 public string code get set 如果最终有人将代码设置为 null 我需要避免空引用异常 我尝试这个想法 有什么帮助吗 public string code get set if code null cod
  • 尝试将 indexPath 保存到 NSUserDefaults 时出错

    我试图保存 UICollectionView 的索引路径 但出现以下错误 libc abi dylib terminating with uncaught exception of type NSException 我的代码是 保存索引路径

随机推荐