Objective C:什么是“(id)发件人”?

2023-12-24

In some IBAction I saw:

- (IBAction)pushButton:(id)sender;

This (id)sender我什么时候使用它?


马特·加洛韦描述了(id) sender http://iphonedevsdk.com/forum/iphone-sdk-development/13295-about-id-sender.html在 iPhone Dev SDK 论坛上的行动如下:

(id)sender 是将消息发送到该选择器的对象。就像在委托函数中,您可以将控制传递给函数等。

如果您有 2 个对象正在调用该选择器并且您想要区分它们,则可以使用此选项。当然,您可以只使用两个不同的函数,但使用一个函数通常更干净且代码重复更少。

See the UIControl 类参考 http://developer.apple.com/library/ios/#documentation/uikit/reference/UIControl_Class/Reference/Reference.html更多细节。


举个例子,UITextField 有一个委托,它在 UITextField 编辑结束时触发:

-(IBAction) editingEnded:(id) sender {
   // the cast goes here, lets assume there's more than one UITextfield 
   // in this Owner and you want to know which one of them has triggered
   // the "editingEnded" delegate
   UITextField *textField= (UITextField*)sender;
   if(textField == iAmTheLastTextField)
   {
     // for example login now.
     [self login];
   }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Objective C:什么是“(id)发件人”? 的相关文章

  • 如何将 JPG 文件加载到 NSBitmapImageRep 中?

    Objective C 可可 我需要将 JPG 文件中的图像加载到二维数组中 以便可以访问每个像素 我正在尝试 未成功 将图像加载到 NSBitmapImageRep 中 我尝试了以下两行代码的几种变体 NSString filePath
  • 迁移大型 Core Data 数据库崩溃

    我有一个将产品存储在核心数据文件中的应用程序 这些产品包括作为 可转换 数据的图像 现在我尝试使用轻量级迁移添加一些属性 当我使用一个小型数据库对其进行测试时 它运行良好 但当我使用一个接近 500 MB 的大型数据库时 应用程序通常会因内
  • Xcode 4 Core Data:如何使用在数据模型编辑器中创建的获取属性

    如何在 Xcode 4 中实现获取的属性 Here is an example of two entities a book and a page 我按照此处的指南创建了一个获取的属性 该属性使用变量 FETCH SOURCE 引用来自源实
  • 从 iOS 中的 App Delegate 调用当前视图控制器中的方法

    我有两个视图控制器 BuildingsViewController 和 RoomsViewController 它们都使用应用程序委托中名为上传的函数 上传函数基本上执行一个 HTTP 请求 如果成功或不成功 都会触发 uialertvie
  • 如何为 Mac OS X 制作可拖动的菜单栏图标

    我正在为我正在开发的应用程序编写菜单栏图标 但是 NSStatusBar 类没有可以通过 cmd 鼠标左键拖动来使图标可拖动的方法 如何使用 Objective C 代码使菜单栏图标可拖动 谢谢 目前您无法使用 NSStatusBar 来完
  • 使用按计数分组的核心数据获取属性

    这是我想为 Core Data 编写的查询的 SQL 版本 SELECT Group Name COUNT Item Name FROM Item INNER JOIN Group ON Item GroupID Group ID GROU
  • UITableView 无法一直滚动到底部[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我只是好奇 我做了一些UITable
  • Xcode 6.4 Swift 单元测试无法编译:“GPUImage.h 未找到”“无法导入桥接标头”

    我的 Xcode 项目构建并运行良好 它有 Swift 和 Objective C 代码 它已安装 GPUImage 我向它添加了单元测试 现在它将不再编译 找不到 GPUImage h 文件 导入桥接标头失败 以下是我发现并尝试过的解决方
  • 使用 iPhone 控制蓝牙音频设备

    我正在寻找为 iPhone 编写应用程序 它将能够控制汽车中的收音机和 CD 播放器 收音机和播放器具有可用的蓝牙连接 我开始这个问题是为了获得这个地方所需的所有信息 我有几个问题 但如果您发现任何我没有要求的对我开始开发此应用程序不重要的
  • 如何读取 Xcode 6.1 Instruments .trace 文件?

    我一直在尝试阅读 trace文件 我使用生成的custom仪器模板 仪器 自动机 分配 Leaks using 仪器 https developer apple com library mac documentation Developer
  • 如何将 CIFilter 输出到相机视图?

    我刚刚开始使用 Objective C 我正在尝试创建一个简单的应用程序 它显示带有模糊效果的相机视图 我得到了与 AVFoundation 框架一起使用的相机输出 现在 我正在尝试连接 Core 图像框架 但不知道如何连接 Apple 文
  • 如何从 UILabel 创建图像?

    我目前正在 iPhone 上开发一个简单的类似 Photoshop 的应用程序 当我想要展平图层时 标签位于良好的位置 但字体大小不佳 这是我要展平的代码 UIGraphicsBeginImageContext CGSizeMake wid
  • Objective-C 使用字符串池吗?

    我知道Java https stackoverflow com questions 3801343 what is string pool in java and C http msdn microsoft com en us librar
  • NSArray 对象的 RACSignal

    我的 ViewController 上有一个 NSArray 的 ViewModel 对象 property 非原子 强 NSArray viewModels ViewModel 对象看起来像这样 interface ViewModel N
  • 为什么没有收到(UDP 多播)数据包?

    所以 我一直试图弄清楚为什么这不起作用 但我没有任何线索 我已经成功地从 iPhone 发送数据包并在 Mac 上接收它们 根据 tcpdump 我的 mac 正确发送数据包 此外 如果我在模拟器中运行它 它工作得很好 这让我相信这是一个网
  • malloc:***错误:已释放对象的校验和不正确 - 对象可能在释放后被修改

    我的 iOS 应用程序有一个大问题 它有时会崩溃 而没有详细的调试错误 堆栈跟踪为空 这是堆栈跟踪中仅有的两行 UIApplicationMain 中的 符号存根 UIHostedTextServiceSession DismissText
  • 如何修复 ReactiveCocoa(带有 CocoaPods)的安装?

    这里是新手 尝试将 ReactiveCocoa 2 2 4 和 CocoaPods 安装到项目中 但在运行时遇到错误 我用过github 上的这个 podspec https github com CocoaPods Specs blob
  • NSDateFormatter:根据 currentLocale 的日期,不包含年份

    这不会太难吧 我想显示不带年份的日期 例如 8 月 2 日 美国 或 02 08 德国 它也必须适用于许多其他语言环境 到目前为止 我唯一的想法是对年份进行正常格式 然后从生成的字符串中删除年份部分 我认为你需要看一下 NSString d
  • 断点条件错误

    我已经根据条件设置了断点 event name isEqualToString Some Name 这很好用 但是 当我尝试添加另一个带有条件的断点时 part name isEqualToString Some Value With A
  • 如果加载 dylib,垃圾收集工作队列会崩溃

    我们正在将应用程序从 10 6 移植到 10 8 我正在查看我们在应用程序中加载的 dylib 我面临着非常不寻常的崩溃垃圾收集工作队列并附有以下消息 malloc Thread suspend unable to suspend a th

随机推荐

  • xcode-选择活动开发人员目录错误

    运行时看到以下错误npm install这需要node gyp 但可能会被任何需要的东西触发xcode select xcode select 错误 工具 xcodebuild 需要 Xcode 但处于活动状态 开发人员目录 Library
  • SQL Server 子查询返回超过 1 个值。当子查询跟在=、!=、<、<=、>、>=之后时,这是不允许的

    我运行以下查询 SELECT orderdetails sku orderdetails mf item number orderdetails qty orderdetails price supplier supplierid supp
  • 如何向 JQuery-steps 添加“重置”按钮

    我还没有看到有人问这个问题 尽管我确实阅读了大约 100 个关于类似主题的 jQuery 步骤 似乎没有一个能解决我的问题 我正在使用 jQuery steps 并希望在第一步完成后添加一个 重置 按钮 以防我的用户想要清除表单并重新开始
  • 在 AndroidKeystore 中保存和检索密钥对

    我需要生成 RSA 2048 密钥对 然后保存它 并恢复它 如果存在 此时此刻 我有这样的 SecureRandom random new SecureRandom RSAKeyGenParameterSpec spec new RSAKe
  • QGraphicsItem 仅通过 X 轴移动对象

    我在仅通过 x 轴移动对象时遇到问题 我知道你需要一些有功能的东西QVariant itemChange GraphicsItemChange change const QVariant value 我发现了这样的事情 QVariant C
  • .htaccess:此处不允许使用 LogLevel

    我想看看我的 htaccess 文件是如何工作的 我在里面放了一个 LogLevel 指令
  • 什么是 Yield?在 ASP .NET 中使用 Yield 有什么好处?

    你能帮助我理解吗yield关键字在asp NET C 收益回报会自动为您创建一个枚举器 http msdn microsoft com en us library 9k7k7cf0 aspx http msdn microsoft com
  • C#中如何将函数作为参数传递?

    C 中可以将函数作为参数传递吗 我可以使用 Func 或 Action 类来完成此操作 但这迫使我立即声明整个函数签名 当我尝试使用委托时 出现编译错误 指出它无法将方法组转换为委托 我正在尝试Axial http www codeplex
  • MySQL什么时候使用utf-8,什么时候使用latin1?

    我知道MySQL默认为latin1编码 显然需要 1 个字节来存储一个字符latin1和 3 个字节来存储一个字符utf 8 那是对的吗 我正在开发一个网站 希望该网站能够在全球范围内使用 我绝对需要吗utf 8 或者我可以不用使用 lat
  • 如何拆卸第一个电池顶部隔板和最后一个电池底部隔板

    我需要删除特定部分中第一个单元格的顶部边框和特定部分中最后一个单元格的底部边框 我在谷歌上搜索了从 tableView 中完全隐藏分隔符的解决方案 但我想避免它 另外 当您收到事件时单元格将显示以使用分隔符插入时 我还找到了解决方案 它适用
  • HTML 中的 BASE64 不起作用

    我尝试了所有可能的方法来使用 base64 字符串显示图像 但他们都没有工作 我在IE6 7 Firefox 3上测试过 请告诉我下面的代码有什么问题 img src data image jpg base64 968 img alt Em
  • memset 字符串的 strcmp 上的 SIGSEGV

    在下面的程序中 我期望 for 循环在 3 个元素后停止 但它会无限期地继续下去 并在稍后因核心转储而失败 is malloc needed forchar would strcmp如果我 memset 为 0 会失败吗 include
  • CoordinatorLayout 支持 v24.1.0 问题

    我刚刚将 android 支持库更新到 24 1 0 但遇到以下问题 error inflate CoordinatorLayout java lang IllegalArgumentException You need to use a
  • 如何在Web浏览器控件中进行跨域请求?

    如您所知 出于安全原因 Internet Explorer 不允许执行跨域 XMLHTTP 请求 我有一个 WebBrowser 控件并且正在使用DocumentText代替Navigate到一个 URL 由于当前域是about blank
  • 静态单元与动态单元的混淆

    我试图找出除了动态单元之外如何拥有一些静态单元 我认为 但是当我启动一个新的主从应用程序并将默认的动态原型切换为静态单元时 它崩溃了 我认为 由于我对此还很陌生 所以我不明白所有组件 表视图 单元格 委托 是如何连接的 当我切换到静态单元格
  • 带有 Knockout 自定义绑定的 Slick.js 轮播

    我想使用很棒的光滑旋转木马 http kenwheeler github io slick http kenwheeler github io slick 与淘汰赛 在查看了其他一些问题后 https stackoverflow com q
  • 如何使用Ruby向底层操作系统发送键盘和鼠标命令?

    Ruby 是否有一种与操作系统无关的方式将键盘和鼠标事件发送到底层操作系统 一种明显的 对我来说 方法是使用 Ruby Java 绑定并使用 java awt Robot 但这看起来很愚蠢 For Mac gem install rb ap
  • JS 中的日文字符转义和解码

    我试图编写一个 JavaScript 方法escapes http www w3schools com jsref jsref escape asp日语字符 var esc str escape var dec str decodeURIC
  • 格式化 Heredoc 内的数组值

    我想知道为什么我不能做类似的事情 number format row my number 在赫里多克里面 有没有办法解决这个问题 而不必求助于定义像这样的变量 myNumber below 看着http www php net manual
  • Objective C:什么是“(id)发件人”?

    In some IBAction I saw IBAction pushButton id sender This id sender我什么时候使用它 马特 加洛韦描述了 id sender http iphonedevsdk com fo