点表示法与方法表示法

2024-02-10

我正在深入研究 iOS 编程,但我很难理解点表示法和方法表示法的想法。

据我了解,点表示法可用于调用属性上的 setter/getter,并且写入/读取更加清晰。方法表示法用于向对象发送消息以对其进行操作等。

有人可以给我一个简单的解释,解释为什么以下两个语句本质上不同,一个可以编译,但另一个会由于语法错误而失败。

- (IBAction)digitPressed:(UIButton *)sender 
{
   NSString *digit = [sender currentTitle];

   self.display.text = [self.display.text stringByAppendingFormat:digit];
   self.display.text = self.display.text.stringByAppendingFormat:digit;

}

Thanks.


您正处于一个有趣的时刻进入 Objective-C 开发,旧语法与新语法一起使用。点语法是语法糖,在某些情况下您需要can使用它,但你不应该使用它。

以下是无效语法。任何需要使用冒号的地方(除了 setter 或 getter),都不会使用点符号。

self.display.text = self.display.text.stringByAppendingFormat:digit;

另外,你会使用stringByAppendingString, not stringByAppendingFormat

您可以使用点符号来访问变量,而不是调用会产生效果的操作。

Correct: self.foo.attributeOfMyClass

错误: self.foo.downloadSomethingFromAWebsite

确保您always使用点表示法来访问属性值,并且您始终使用方括号表示法(即使您不这样做)have to)调用action方法,你的代码一目了然。

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

点表示法与方法表示法 的相关文章

  • 如何将 .ipa 转换为 .app 文件?

    每个人 我有一些 ipa 文件 想要转换为包含 app 包的存档文件 我试图这样做 但我没有办法 有什么办法可以做到这一点吗 请帮我 将 ipa 重命名为 zip 然后提取即可
  • 如何本地化 iOS 故事板

    我有一个包含一些视图的 iPhone 故事板 例如 导航项标题名为News 应翻译为其他语言 当我向故事板添加新的本地化版本时 它会为新语言创建当前故事板的副本 在这里我可以更改导航项的标题 但对我来说它似乎不太有用 如果我的故事板包含 1
  • iOS FacebookSDK + 解析 SDK + GoogleMaps SDK

    我搜索了很多 然后我意识到 ObjC标记那个GoogleMapSDK需要 但不能很好地配合ParseSDK and FacebookSDK 所以我阅读了所有的 stackoverflow 答案并尝试解决我的问题 问题还没有解决 我执行的步骤
  • 如何从标签栏控制器上方显示 UIActionSheet 视图?

    我需要在选项卡栏控制器上方显示操作表 我的意思是 即使操作表视图处于可见模式 我也能够看到选项卡栏控制器 因此 请建议如何从选项卡栏控制器上方查看 是否可以 其次 如何更改操作表的背景颜色和取消按钮背景颜色 请帮我 谢谢你 马丹 莫汉 要从
  • 更改目录时 Gitlab CI 运行程序作业失败退出状态 1

    我正在使用我的个人机器作为使用 Fastlane 的 iOS 项目的运行程序 这主要是因为共享运行器没有为 iOS 设置 因为它们没有安装 Xcode 更改目录时我的作业立即失败 它是一个 shell 运行程序 根本没有其他自定义配置 有什
  • 如何将 NSMutableArray 添加到 NSMutableArray Objective-c

    我正在从 Java 切换到 Objective c 但遇到了一些困难 我已经搜索过这个问题但没有取得太大成功 我有一个存储 NSMutableArrays 的 NSMutableArray 如何向数组添加数组 您可以在数组中存储对另一个数组
  • 如何使用逗号和行分隔符对字符串进行标记

    我正在 Swift 中制作一个简单的 String Tokenizer 就像在 Java 中一样 但这对我来说确实不起作用 我的数据源中每行的末尾用 分隔 数据用逗号分隔 例如 字符串 1 字符串 2 字符串 3 字符串 1 字符串 2 字
  • iOS 上关键 ClientState 警告的默认访问速度缓慢

    在测试我的 iOS 应用程序时 我收到 对关键 ClientState 的默认访问速度慢 耗时 0 034635 秒 容差为 0 020000 警告 它似乎是间歇性发生的 我试图环顾四周看看它是关于什么的 但我并不完全确定 任何帮助表示赞赏
  • Apple 由于崩溃而拒绝了我的应用程序,无法重现它

    我刚刚上传了一个应用程序到应用程序商店 它是为ios 7开发的 他们拒绝了该应用程序 因为我无法重现崩溃 他们向我发送了这份崩溃报告 Exception Type EXC BAD ACCESS SIGSEGV Exception Subty
  • 在辅助功能模式下未检测到手势

    我正在编写一个应用程序 我需要在屏幕顶部放置一个标签 每当用户触摸它 或在其上方滑动手指 时 我需要大声读出标签文本 我尝试了以下方法 首先制作标签的可访问性元素 YES labelInfo setIsAccessibilityElemen
  • 广告标识符和标识符ForVendor返回“00000000-0000-0000-0000-000000000000”

    我已经实现了这个方法来获得advertisingIdentifier and identifierForVendor NSString advertisingIdentifier if NSClassFromString ASIdentif
  • SDK 和 iOS 部署目标。

    我使用最新的 SDK 4 1 构建项目并设置 iOS 部署目标 3 0 如果我使用4 0 sdk的某些方法 我可以在真正的iPhone 3 0上运行我的项目吗 您只能在 OS 3 设备上运行您的项目 如果有条件地编码围绕您想要使用的 OS
  • UIScrollView 与 UITabBarController 切断

    我有一个 UIScrollView 我将其放置在视图中 界面生成器文档 xib m h 但是 UIScrollView 的下半部分被剪切 并且由于我有一个 UITabBarController 而没有显示其下半部分 我在 appdelega
  • 使用未声明的类型“对象”

    这太奇怪了 通常我可以理解未声明的类 但这是声称 Object 类本身未声明 NSObject 可以工作 但我的项目设置方式我需要它是一个纯 Swift 对象 我的类标题如下所示 import UIKit import Foundation
  • Swift 单元测试 - 如何断言 CGColor 是它应该的样子?

    使用 Xcode V7 2 尝试进行单元测试 需要验证是否已设置正确的颜色 并收到以下消息 Cannot invoke XCTAssertEqual with an argument list of type CGColor CGColor
  • dispatch_semaphore_t 重用 - 我在这里缺少什么?

    我有一些代码 其中使用dispatch semaphore t 来表示操作完成 当信号量是成员变量时 它的行为似乎不正确 我将展示有效的示例代码和似乎无效的示例代码 implementation someClass dispatch sem
  • 获取所有ios应用程序的全局列表[重复]

    这个问题在这里已经有答案了 我想对苹果应用商店进行一些全球统计 一个瓶颈是至少获取所有当前活动应用程序的 ID 这 9 位数字 有谁知道如何获取 iOS 应用商店中当前活动应用程序的所有 id 的完整列表 更好的是特定类别的所有 ID 例如
  • 隐藏 UITableview 单元格

    我正在尝试从 UITableView 中隐藏单元格 就像删除操作一样 但我只想隐藏它以便稍后在相同位置显示它 我知道 UITableViewCell 有一个名为 隐藏 的属性 但是当我使用此属性隐藏单元格时 它会隐藏但没有动画 并且会留下空
  • 如何制作像 Facebook 应用程序一样的登录屏幕?

    如何制作像 Facebook 应用程序一样带有 电子邮件 和 密码 文本字段的登录屏幕 Facebook登入 http extdesenv com wp content uploads 2012 05 facebook login ios
  • 带有自定义字体的 UILabel 错误呈现

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

随机推荐

  • 延迟加载带有图片、源和 img 标签的图像(webp、jpg)(React)

    我目前正在尝试使用 React 实现延迟加载图像组件 我最初的解决方案是一个非常简单和基本的方法 I used Image API https developer mozilla org en US docs Web API HTMLIma
  • 通过 WordPress 中的functions.php 自动创建新用户

    我需要通过代码添加具有管理员角色的新用户 我发现了以下代码 add action init add user function add user username username123 password pasword123 email
  • 防止热链接到图像和文件

    我有几个图像和 PDF 文件 并且我看到其他几个网站正在直接将这些文件复制到他们的服务器 我有更好的方法来防止这种情况 我尝试了 cpanel 热链接保护 但在这种情况下 我必须为每个允许但不可能提供的 URL 提供链接 因此 请告诉我更好
  • “perl”本身有手册页吗? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想知道什么perl T means
  • 识别android中的DTMF音

    我计划在 android 中创建一个 centerx 系统应用程序 其中有一个语音信箱会设置在接收方 根据语音邮件中的指示 呼叫者必须按下拨号盘中的号码 接收方应识别该号码并执行相应的操作 有谁知道如何在接收方检测呼叫者按下的号码 其背后的
  • 如何使用 OpenXML 和 C# 从 Excel 文档中的合并单元格获取值

    我在合并单元格时遇到问题 如果我在第一个单元格 B3 中有值 并且该单元格与其他一些单元格 例如 C3 D3 E3 F3 F4 合并 在 Excel 文档中我只能看到一个值 这很棒 但当我请求 C3 D3 E3 F3 值时 我想从 GetC
  • 在 WIX 中运行时动态为快捷方式分配名称

    我想根据用户输入为快捷方式分配不同的名称 使用 WiX 工具集是否可行 我尝试将财产价值分配给Name的属性Shortcut元素 但它不起作用 的名称栏快捷方式表 http msdn microsoft com en us library
  • 在 Ionic 2 中,如何创建使用 Ionic 组件的自定义指令?

    创建基本指令很简单 import Component from angular2 core Component selector my component template div Hello div export class MyComp
  • 当状态改变时,React-typing-animation 不会重新渲染

    我有以下组件 import React Component from react import Typing from react typing animation export class InfoDisplayer extends Co
  • 如何在使用hadoop时使用logger api编写java日志文件

    我写了一个我想调试的地图缩减代码 为此 我无法使用标准输出 因为除非发生错误 否则 Hadoop 平台不会将其打印到屏幕上 相反 我尝试使用记录器来创建日志文件 我使用处理程序将其拆分为两个文件 不幸的是 严重 日志文件为空 而通用日志文件
  • java.io.IOException:Android 设备上没有剩余空间

    我们在 Android 市场上有应用程序 我们的用户从这个错误中得到了很多 java io IOException 设备上没有剩余空间 从我到目前为止发现的情况来看 我知道他们的外部存储上有足够的空间 而且这只发生在 Android 2 x
  • 如何使用openCV python从文本文档中删除水印?

    我是 OpenCV 新手 我需要帮助从该图像中删除水印 我尝试使用修复 但我想要一种更自动化的特征映射和修复方式 请帮助我 如果您的所有图像都是这样的并且具有水印 如具有浅灰色水印的问题所示 那么简单的阈值操作将起作用 import cv2
  • Flask 和 React - Spotify 授权后处理令牌

    我已经在我的应用程序中实现了 JWT 用于用户登录 在 Spotify Auth 之前 如下所示 Flask auth blueprint route auth login methods POST def login user get p
  • 快速:didSelectRowAtIndexPath

    我有 tableViewController 我想点击 1 个单元格并获取print 0 然后点击2个单元格并得到print 1 但我的代码不起作用 为什么 import UIKit class MasterViewController U
  • Laravel 身份验证登录不起作用

    我是 Laravel 的新手 我正在开发 Laravel 身份验证系统 虽然注册有效 但登录没有执行任何操作 用户控制器 php class UserController extends Controller public function
  • 2 状态可舍入数字文本框与knockoutjs

    我想要一个具有 2 个状态的 html 数字文本框 当聚焦时 它必须显示所有小数位 当焦点丢失时 只显示 2 位小数 我几乎已经实现了 HTML
  • 如何向服务器发送数据

    我想做一个登录 那么如何将用户名和密码发送到我的服务器呢 我为服务器编写了一个 php 脚本 他将收到用户名和密码 如果用户名和密码正确 他将响应 成功 那么如何发送到服务器呢 用 onResponse 发送后呢 您可以使用 OkHttp
  • 在 R 中安装包时出现警告

    我一直在尝试在 R 中安装 ggplot2 包 这是我收到的警告 read dcf file path pkgname DESCRIPTION c Package Type 中的错误 无法打开连接 另外 警告消息 1 在 download
  • 将括号内第一个单词的第一个字母大写

    我想将括号内每个字符串的第一个字母大写 如果我们有这个字符串 const text This forest or jungle is really beautiful 期望的结果是 This Forest or jungle is Real
  • 点表示法与方法表示法

    我正在深入研究 iOS 编程 但我很难理解点表示法和方法表示法的想法 据我了解 点表示法可用于调用属性上的 setter getter 并且写入 读取更加清晰 方法表示法用于向对象发送消息以对其进行操作等 有人可以给我一个简单的解释 解释为