Swift:如何从 Objective-C 调用类别或类方法

2024-01-18

我有一个类别UIImage这是用 Objective-C 编写的。以下是一些示例方法。如何在 Swift 中调用这些方法?

+(UIImage *) imageOrPDFNamed:(NSString *)resourceName; 
+(UIImage *) imageWithPDFNamed:(NSString *)resourceName;

我已尝试以下方法,但它无法识别这些方法:

let image = UIImage(imageOrPDFNamed:"test.pdf")
let image = UIImage(PDFNamed:"test.pdf")

类别函数及其调用约定有多种情况。

1)In swift类别中的类函数可以导入为convenience initializes如果他们返回的类型与他们调用的类型相同

 +(UIImage *) imageOrPDFNamed:(NSString *)resourceName ;

所以它可以被称为

    UIImage(orPDFNamed: "abc")

2)但是,如果类别中的类函数没有返回相同的对象类型(UIImage) 在这种情况下它调用UIImage like

   +(int) imageOrPDFNamedInt:(NSString *)resourceName ;

它将称为

    UIImage.imageOrPDFNamedInt("abc")

3)如果类别函数不是类函数,那么它将直接在实例上调用UIImage like

   -(UIImage *) imagePDFNamed:(NSString *)resourceName ;

称为

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

Swift:如何从 Objective-C 调用类别或类方法 的相关文章

  • 我们可以从 LinkPresentation 框架中的 LPLinkView 中提取图像吗?

    我想在我的应用程序中呈现丰富的链接 并将这些数据发送到我的服务器 我需要访问视图内的图像LPLinkView https developer apple com documentation linkpresentation lplinkvi
  • 确定 NSView 是否绘制的正确方法

    有没有正确的方法来确定是否NSView实际上是否在当前视图层次结构中绘制 考虑以下情况 视图完全在屏幕外 不是强制性的 该视图不在视图层次结构的顶部 The isHidden and isHiddenOrHasHiddenAncestor不
  • 如何请求用户开启定位服务

    我需要我的应用程序来访问用户的当前位置 它在应用程序开始时检查用户是否已设置 如果没有 我需要应用程序显示提示以使其使用位置服务 就像警报视图一样 点击按钮 它应该会带您进入 iPhone 上的位置服务屏幕 您可以通过以下代码检查 loca
  • 线程 1:信号 SIGABRT - AppDelegate.h

    main m Journey Created by Julian Buscema on 2014 07 13 Copyright c 2014 Julian Buscema All rights reserved import
  • FireMonkey iOS RAD Studio XE2 - 在从 URL 加载的表单上显示图像

    是否可以将 TImage 放置在 iOS 的 FMX 表单上 并将图像 jpg 从 URL 加载到此 TImage 中以在 iOS 应用程序中显示 我尝试过但没有成功 任何正确方向的提示或指出都会受到赞赏 将 TButton TImageC
  • 无法转换“UINavigationController”类型的值

    我正在为我的应用程序实现一个搜索界面 因此基本上我会将搜索关键字从一个 ViewController 传递到另一个 ViewController 我已经多次进行过这种类型的参数传递 但这次似乎有些奇怪 目标 ViewController 嵌
  • PrepareForSegue之谜

    我在两个不同的 VC 中有一个prepareForSegue 方法 一个使用一个if声明 而另一个旨在使用switch 除了名称之外 代码几乎相同 这个效果很好 void prepareForSegue UIStoryboardSegue
  • Objective C UIImagePNGRepresentation内存问题(使用ARC)

    我有一个基于 ARC 的应用程序 它从 Web 服务加载大约 2 000 个相当大 1 4MB 的 Base64 编码图像 它将 Base64 解码后的字符串转换为 png图像文件并将其保存到磁盘 这一切都是在一个循环中完成的 我不应该有任
  • 我可以知道 requireGestureRecognizerToFail 到底会做什么吗?

    谁能告诉我下面的代码行到底会做什么 我已经提到过Apples https developer apple com library ios documentation uikit reference UIGestureRecognizer C
  • 将数字分解为单个数字的数组

    如果我有整数 123 并且我想将数字分解为数组 1 2 3 最好的方法是什么 我已经搞乱了很多 并且我有以下工作 var number 123 var digits Array String number map Int strtoul S
  • 在 Instruments 中查找内存泄漏行

    我是 iOS 中的仪器新手 我正在尝试使用 Xcode 4 5 2 并按照本教程查找仪器中的内存泄漏 http soulwithmobiletechnology blogspot sg 2011 04 how to check memory
  • 对使用phonegap和钛的质疑[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 最近我听说了 PhoneGap 和 Titanium 移动网络应用程序的开发 我分析了这两个 Web 应用程序 并了解了如何使用它们以
  • 按范围迭代数组

    我有一个数组 1 2 3 4 5 6 100 我希望将此数组迭代 5 次 具体来说 取数组的前 5 个数字并获取平均值 继续处理接下来的 5 个数字并获取平均值 依此类推 我尝试过多种方法 例如Dequeue和 for 循环但未能获得所需的
  • 当您感兴趣的任务完成时,是什么让完成处理程序执行该块?

    我一直在询问并试图了解完成处理程序是如何工作的 我用过很多 也读过很多教程 我将在这里发布我使用的代码 但我希望能够创建自己的代码 而无需使用其他人的代码作为参考 我理解这个完成处理程序 其中调用者方法 void viewDidLoad n
  • 应用程序未通过协同设计验证?

    我在提交 iPhone 申请时遇到问题 我看到了一些类似的问题 但没有找到答案 当我存档项目并单击 验证 时 收到错误消息 应用程序未通过协同设计验证 签名无效 或者未使用 Apple 提交证书进行签名 我假设我在协同设计部分做错了什么 我
  • 在 iOS 上从 GPS 获取时间

    我正在开发一个跟踪器应用程序 该应用程序需要高精度地了解设备位置 即它使用位置服务并忽略水平精度低于 20 米的位置 CLLocation没有明确声明是否通过 GPS 确定 但是 如果水平精度为 20 米或更好 则可以认为它是来自 GPS
  • 显示键盘时如何在 TextView 下方添加更多填充

    当我在 ScrollView 中有 TextField 并点击它时 键盘会按预期显示 但似乎 TextField 已向上移动到足以显示输入区域 但我希望移动到足够的位置 以便整体可见 否则它看起来像是被剪裁了的 我找不到改变这种行为的方法
  • 在 UIMenuItem 上设置accessibilityLabel

    我正在尝试设置accessibilityLabel of a UIMenuItem而且似乎没有效果 无论如何 VoiceOver 只是读取项目的标题 let foo UIMenuItem title foo action selector
  • 如何获取 UIWebView 中元素的位置?

    我在 iPad 程序中加载了 html 的 UIWebView 通过使用 webkit column width 我将 html 分为几列 padding 0px height 1024px webkit column gap 0px we
  • KeyboardAvoidingView - 隐藏键盘时重置高度

    我正在使用 React NativeKeyboardAvoidingView设置我的高度View当显示键盘时 但是当我关闭应用程序中的键盘时 视图的高度不会变回原来的值

随机推荐

  • 在 WPF MVVM 中动态添加控件

    我正在开发一个动态搜索视图 其中单击按钮应添加一个包含 3 个组合框和 2 个文本框的新行 我该怎么做呢 如果您真的想做 mvvm 请尝试忘记 如何添加控件 您不必这样做 只需考虑您的视图模型 WPF 会为您创建控件 在您的情况下 假设我们
  • 使用 Comparable 比较通用变量

    对于我班级中的一个作业 我们有一个名为 Pair 的类的集合 我们需要根据键的值按升序对其进行排序 如果键是字符串或整数 我可以应用此方法 但是如何编写代码来比较我的项目 当它们是通用的时 如下所示 我班上的教授解释了如何处理整数或字符串
  • 为什么显示“更新Git索引失败”

    我正在使用Windows 当暂存文件时 我收到此错误 Updating the Git index failed A rescan will be automatically started to resynchronize git gui
  • 添加 HTTPS 支持会导致循环重定向

    我在 Web 应用程序中使用 Spring Security 框架 我已经安装了 SSL 证书并且能够通过以下方式访问我的应用程序https 现在 当我添加requires channel https 归属于所有人intercept url
  • AngularJS element.innerHTML 在指令中未定义

    假设我有 directives directive foo function return restrict A scope true link function scope element attr console log innerHT
  • 在单个“setup.py”中多次调用“setup()”是否安全?

    我正在开发一个包含 Cython 扩展的包 根据https github com pypa pip issues 1958 https github com pypa pip issues 1958我将使用setup requires并推迟
  • iOS5.1:同步任务(等待完成)

    我在同步 openWithCompletionHandler UIManagedDocument 与主要活动时遇到一个基本问题 情况 我有一个管理共享 UIManagedDocument 的单例类 这个类提供了一种应该交付的方法the文档处
  • 如何在 Android 模拟器中安装 .apk 文件? [复制]

    这个问题在这里已经有答案了 我想在 android 模拟器中安装我的 apk 文件 但是我打开了多个模拟器 5554 5556 并且我不想关闭任何一个模拟器 当有多个模拟器时如何在模拟器中安装 apk 文件模拟器打开了吗 你可以告诉adb您
  • 获取 play.api.libs.json.JsValue 的所有键

    我必须存储play api libs json JsValue列表的键 我如何做到这一点 var str json String val json JsValue Json parse str val data json data prin
  • 使用 sort() 对 unordered_map 进行排序 [重复]

    这个问题在这里已经有答案了 我正在尝试排序unordered map using sort 函数 但我不断收到编译器错误 有人可以帮忙吗 bool comp pair
  • MVC路由静态文件

    我正在使用一个旧版 swf 文件 该文件在控制器 操作路由中查找静态路由 例如 它正在尝试下载文件 http localhost 59801 Resource Details ClearExternalPlaySeekMute swf 当文
  • Android Studio:编译器发生异常(1.8.0_152-release)

    运行应用程序时 无法完成编译 继续抛出错误 我正在使用 dagger2 库进行注释 错误 15 04 36 466 错误 system err 编译器 1 8 0 152 release 中发生异常 请针对以下错误提交错误 Java 编译器
  • XCode“上传期间发生错误,rsync:失败”

    The last archives I ve made turn out into this error 日志显示此信息 此日志中省略了应用程序名称和路由 2016 06 28 08 53 48 0000 MT Upload failed
  • 如何发送到 Zend Framework 的自定义错误页面?

    我有可以被阻止的成员 当成员被阻止时我想将它们发送到自定义错误页面 我将如何在 zend 框架中做到这一点 我试过 throw new Zend Controller Dispatcher Exception Your message he
  • 如何将此平板电脑注册到 Ubuntu udev 列表?

    我有一台便宜的 Android 平板电脑 我需要用它来测试上面的应用程序 我使用的是 Ubuntu 所以我首先必须将设备添加到udev list 我连接了平板电脑 但是adb没有看到它 adb devices List of devices
  • 如何跨 Django 视图维护 LDAP 身份验证?

    目前的情况如下 我创建了一个登录 html我在表单中输入用户名和密码的页面 在我的views py我获取 POST 数据并使用用户名和密码对我的 LDAP 服务器进行身份验证 机制有效 如果用户名 密码错误 我将被重定向回登录页面并显示错误
  • 用于aws s3的python boto,如何获取存储桶中的排序和有限文件列表?

    如果存储桶上的文件太多 而我只想获取 100 个最新文件 我怎样才能只得到这些列表 s3 bucket list http boto readthedocs org en latest ref s3 html boto s3 bucket
  • 全局 Sass 导入和使用 - Nuxt 3 静态资产

    我正在尝试从以下位置导入全局 Sass 样式表 assets目录并使用在整个组件中定义的变量和混入等内容 我的nuxt config ts目前看起来像这样 import defineNuxtConfig from nuxt3 export
  • Knockout Observable 和 Google Chrome 自动填充问题

    基本上 我在登录表单上有一个登录按钮 可以与 jQuery 1 8 3 我尝试过 1 9 0 和 Knockout 2 2 1 可观察对象一起正常工作 以及用于启用 禁用登录按钮的绑定 当计算函数发现缺少用户名或密码时 启用按钮将被禁用 但
  • Swift:如何从 Objective-C 调用类别或类方法

    我有一个类别UIImage这是用 Objective C 编写的 以下是一些示例方法 如何在 Swift 中调用这些方法 UIImage imageOrPDFNamed NSString resourceName UIImage image