从类方法调用实例方法

2023-12-21

所以我需要从 Objective-C 中的类方法调用一些实例方法...

例子 :

+(id)barWithFoo:(NSFoo *) {
[self foo]; //Raises compiler warning. 
}

-(void)foo {
//cool stuff
}

所以我的问题是; StackOverFlow 是如何在 Objective-C 中做这样的事情,我对 OOP 有点陌生,所以我生气了,还是有办法做到这一点?


没有办法做到这一点。它根本不适用于面向对象。

课程有kinds东西的。就是这样。他们只是简单地describe那种东西是做什么的。

一个例子可能是您有一个“Dog”类。您将拥有定义狗如何摇尾巴或如何进食的实例方法。您可能有一个购买狗的类方法。

我的宠物狗 Fido 是狗类的一个实例。我可以给 Fido 发送消息,告诉他摇尾巴并吃东西。然而,我不能要求“Dog”类摇尾巴;谁的尾巴会摇?它是 Fido 的狗,还是我邻居的狗?

当您向班级发送消息时,您没有可以使用的“self”变量。没有什么可以告诉自己摇尾巴。类消息主要用于创建类的实例或获取其他一般信息。

Edit:澄清一下,最后一段过于简单化了。正如 bbum 所描述的那样,类方法中有一个“self”变量 - 它是计算机对类描述的引用。也就是说,我认为我从未有过在类方法中使用“self”的机会。

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

从类方法调用实例方法 的相关文章

  • 创建主窗口后添加 NSTouchBar 支持

    我正在尝试添加对暴露的支持NSTouchBar按钮通过插件连接到我无法修改的应用程序 该插件是一个共享库 在创建主窗口后在运行时加载 我创建了一个AppDelegate如下 interface AppDelegate NSResponder
  • NSPopUpButton、绑定和缩短的寿命

    我试图了解使用 NSPopUpButton 是多么困难 它无疑是 Cocoa 中最难编程的用户元素 至少就我而言是这样 我想到的用例如下 我有一个名为 Port 的类 代表串行端口 属性中有一个名称字段 在 NSPopUpButton 中
  • xx 秒后恢复到之前的控制器

    我有一个非常简单的应用程序 代码很少 在我的 ViewController 中 我没有执行任何代码 我只添加了一个导航栏 其中包含一个带有视频控制器模式的下一个按钮 我想要实现的是在 ViewController 中按下下一个按钮后 允许用
  • 如何使虚线可移动

    我用下面的代码画了一条虚线 get the current CGContextRef for the view CGContextRef currentContext CGContextRef NSGraphicsContext curre
  • 在代码中创建时 UISearchDisplayController 不工作?

    我正在开发一个选项卡栏应用程序 其中一个选项卡有一个连接到 UISearchBar 的 UISearchDisplayController 所有这些都已连接到 NIB 中并且正在工作 当我点击搜索栏时 范围 和 取消 按钮会飞入等 并且搜索
  • 具有 URL 样式格式的 NSTextField

    我一直在尝试让 NSTextField 识别 URL 并且一般来说我的代码可以工作 我按照苹果的说明进行操作这一页 http developer apple com library mac qa qa1487 关于如何使用 hyperlin
  • 错误:CUICatalog:提供的资源名称无效:(空),或无效的比例因子:2.000000

    TableViewApplication 1458 70b CUICatalog Invalid asset name supplied null or invalid scale factor 2 000000 使用 TableViewC
  • 如何使用 php __toString

    有什么用途 toString in PHP 例如 我有一个函数 例如 在一个名为 person 的类中 public function construct id name this gt id id this gt name name an
  • IO 和 Android 之间发送数据? (字节数组)

    我正在 Android 中开发一个网络应用程序 它应该能够与 IO 应用程序进行通信 我正在使用 Appwarps 多人游戏后端 并且有一个发送和接收数据的功能 该函数接受一个字节数组 所以最初我认为我可以将一个 消息 对象序列化为一个字节
  • 如何通过 HTTP POST 发送充满对象的 NSArray?

    我在 iPhone 端有一个产品 购物清单 由具有名称 product id 等的产品对象组成 我希望将此列表发送到服务器 在那里我将服务器上的列表与 iphone 中的列表进行比较 以合并所做的更改并将合并的列表发送回 iphone 如何
  • 如何在 SWIFT 中实现 Objective-C 回调处理程序?

    目标c代码如下所示 void signInAccountWithUserName NSString userName password NSString password completion void BOOL success compl
  • 显示键盘时 Admob 广告不会出现在 UITableView 页脚中

    我用它在 UITableView 的页脚上显示 Admob 广告 UIView tableView UITableView tableView viewForFooterInSection NSInteger section GADBann
  • NSComboBox:如何告诉用户输入了不在弹出列表中的信息并读取它

    我有一个 NSComboBox 它有一个符合 NSComboBox 数据源和委托的单独类 如果用户在组合框中键入的文本与弹出列表中的一项不匹配 我如何收到用户已键入内容的通知并读取用户键入的值 目前我正在实现委托方法 void comboB
  • ASIHTTP:上传 UIImage?

    有人可以告诉我如何在 Objective c 中使用 ASIHTTPRequest 对象上传 UIImage 对象吗 我需要将其转换为 NSData 对象吗 这是头像上传网址 E g UIImage toUpload UIImage ima
  • 从底部加载导航视图控制器

    我有四个 ViewControllers 其中 ViewControllers 使用以下方式加载UINavigationController 我能够一一切换到每个 ViewController 问题是 由于我使用的是 NavigationC
  • 获取实体中某个值的最大值

    我正在尝试获取核心数据中实体中属性的最大值 苹果有一个很好的例子here http developer apple com library mac documentation Cocoa Conceptual CoreData Articl
  • 在 iPhone 中创建类似 facebook 菜单导航的视图 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我需要在我的 iPhone 应用程序中创建如下所示的视图 我不知道该怎么做 视图描述 如果我按下视图中箭头指示的按钮图标 则会出现一个新视
  • 将 NSWindow 的内容变灰

    我有一个NSWindow with 2 NSViews an NSSplitView和一个习惯NSView 访问数据以填充这些视图可能需要一些时间 在此期间 我想将这些视图的内容灰显 我的第一个方法是有一个黑色的第三个NSView覆盖另外2
  • NSString 的 UTF8String 的 CFString 等价物是什么?

    今天我陷入了僵化状态 因为我无法将一段简单的 ObjC 代码转换为其等效的 Cpp 代码 我有这个 const UInt8 myBuffer NSString aRequest UTF8String 我正在尝试用以下内容替换它 const
  • 如何将本机 C 类型与 PerformSelectorOnMainThread: 一起使用?

    我想打电话 void setDoubleValue double value using performSelectorOnMainThread 我认为可行的是 NSNumber progress NSNumber numberWithDo

随机推荐

  • 在 .NET 中模拟 Python 的 random.choice

    Python 的 random 模块有一个函数random choice http docs python org library random html random choice random choice seq 从非空序列 seq
  • 使用 upstart 脚本守护 sidekiq - 不起作用

    我正在尝试使用以下两个新贵脚本来守护 sidekiqthis https github com mperham sidekiq tree master examples upstart manage one例子 基本上 workers 服务
  • 如何从 Java 数组中删除一个条目,以便其他条目保持顺序

    原谅笨拙的标题 我想编写一个方法 从数组中删除特定条目 但不会在数组中留下空间隙 例如 如果一个字符串数组包含 aa bb cc dd ee 系统将提示用户输入要删除的数字 该方法将找到该条目的索引 删除该索引 然后将空条目移动到最后一个插
  • OS X / C 已安装字体列表

    我正在尝试以编程方式获取 C 或 Python 中已安装字体的列表 我需要能够在 OS X 上执行此操作 有人知道怎么做吗 安装了 PyObjC 的 Python Mac OS X 10 5 就是这种情况 因此此代码无需安装任何东西即可运行
  • %date:/=% 中的 :/= 是什么意思?

    在寻找在 Windows 中创建以日期命名的目录的方法时 我遇到了这个问题 https stackoverflow com q 5485853 520162 with that https stackoverflow com a 54859
  • VB6 清单无法在 Windows 7 上运行

    我为在 Windows 7 上运行的 VB6 应用程序创建了一个清单文件 不是为了任何视觉样式更改 只是为了确保它访问通用注册表而不是虚拟化注册表 exe 名称为 Capadm40 exe 清单名为 Capadm40 exe manifes
  • 将数据从 js 发送到 php、从 php 发送到 mysql 以及 REST json 响应时所需的正确编码/转义/htmlentities 是什么

    这是我经常遇到的情况 我通常最终会求助于尝试再尝试的方法 直到数据起作用 我想 SO 会知道维护数据而不弄乱 json 的最佳实践是什么 假设我要发送的数据是最烦人的文本数据 特殊字符 我们还假设我想将所有内容保留为 utf8 并且我的 m
  • 为什么 {0} 始终是有效的结构初始值设定项? [复制]

    这个问题在这里已经有答案了 考虑以下 C 代码 typedef struct abc int a 4 int b int c abc t abc t x 0 我发现将其与gcc c Wall Wextra pedantic std c99不
  • 为什么 iOS Safari 和 Chrome 不滚动页面并在复选框和单选输入字段上显示验证消息?

    鉴于此示例代码 为什么在 iOS Safari Chrome 上提交表单时 浏览器不会将页面滚动到顶部并在所需的单选框上显示验证错误 这在文本输入字段以及这些浏览器的桌面版本和 Android 上按预期工作 如果删除文本填充以缩短页面以使字
  • 枚举被解释为字符串

    当用户登录时 我设置一个 sessionScope 对象 并且该 bean 对象由几个其他 bean 组成 这些bean的属性之一是枚举 但我发现EL无法获取枚举类的属性 并且它只能获取java bean对象的属性 所以我决定为枚举创建一个
  • Cypher Neo4J - 使用 MERGE 进行 CASE 表达

    我正在尝试根据特定条件在 Cypher 中实现逻辑 CASE声明 我会创建一些节点和关系 代码如下 MATCH g Game PLAYER gt u User r1 AT gt b1 Block NEXT gt b2 Block WHERE
  • 从 C# 运行 .bat 文件

    我面临一个奇怪的问题 我有一个 bat 文件 其中包含用于重命名文件的代码 当我手动打开 bat 文件时 它会执行上面写的操作 即重命名文件 但是当我尝试打开时它以 C 方式编程 它不执行任何操作 它只是打开文件并且不编译它写入的内容 我输
  • 如何在 QuickCheck 测试中悄悄捕获恐慌?

    在我的测试中溢出 支持 https crates io crates overflower support板条箱 我发现我收到了很多关于恐慌的虚假报告 这些报告已经使用std panic catch unwind 这有点不幸 因为它掩盖了可
  • Windows 上的 django-admin.py 和 virtualenv 问题

    在我的系统中 系统范围内安装了 Django 1 2 3 C gt python c import django print django get version 1 2 3 C gt django admin py version 1 2
  • 如何将 MySQL 设置为 Rails 3 中的默认数据库?

    我去年 4 月开始使用 Rails 2 但今年 6 月停止使用 因为我认为在 Rails 3 发布时学习它会更实用 因为它的很多内容都被完全重构和重组 我曾经使用 Ubuntu 10 04 使用 SQLite3 作为默认数据库 但现在我使用
  • 部分表单类 C# - 仅显示类的代码视图

    我有一个用 C 编写的空白表单项目 我想将函数和事件分离到表单类上的不同代码文件中 为了当它变得很大并且多人在 CodeControl 上使用它时使其更易于管理 所以我创造了 Form1 Functions cs Form1 Events
  • 如何解决 React Native run-android 中的“您的项目中需要有 MainApplication”

    我从博览会上被驱逐 并尝试react native run android 我收到此错误 FAILURE Build failed with an exception Where Script C Users simil OneDrive
  • 单一类型特征中的双向链接

    我正在尝试创建一个特征 它实现具有双向链接的树 以便当节点添加父节点时 该节点将添加到父节点的子节点中 我得到的错误如下 类型不匹配 找到 PolyTree this type 具有基础类型 PolyTree T 必需 T 知道为什么此代码
  • HTML5 / JS 线性仪表 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想显示一个线性仪表 如融合图 http docs fusioncharts com flex charts Contents Wid
  • 从类方法调用实例方法

    所以我需要从 Objective C 中的类方法调用一些实例方法 例子 id barWithFoo NSFoo self foo Raises compiler warning void foo cool stuff 所以我的问题是 Sta