对象 Switch 语句的高性能 Objective C 替代方案

2023-12-19

我有一个函数,我想接受一个 NSString 和一个 int 参数,然后使用 switch 语句返回一个计算值,就像将 int 乘以某个常量一样,具体取决于提供的 NSString 内容。

显然,switch 语句不适用于 Objective-C 中的对象。那么最快的替代方案是什么?是 if-else 语句吗?或者有更优雅的方法吗?

EDIT

我关心性能的原因是我正在修改用户正在观看的 UI 元素,作为这些计算的最终结果,我不希望它感觉缓慢。


不要过早优化。只需创建一个 NSDictionary 将每个字符串映射到其乘数即可。然后看看速度是否足够快。

如果您需要根据字符串执行不同的操作,请将字典中的每个值设为执行适当操作的块。

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

对象 Switch 语句的高性能 Objective C 替代方案 的相关文章

  • 将所有奇数位置的元素移动到左半部分,将偶数位置的元素移动到右半部分

    给定一个包含正整数和负整数的数组 将所有奇数索引元素移动到左侧 将偶数索引元素移动到右侧 问题的难点是在维持秩序的同时就地做 e g 7 5 6 3 8 4 2 1 输出应该是 5 3 4 1 7 6 8 2 如果顺序不重要 我们可以使用快
  • 循环中的递归算法复杂度(运行时间)

    我想了解您对如何检测以下递归算法的 T n 运行时间 的意见 Charm 是一种用于发现事务数据库中频繁闭项集的算法 频繁闭项集列表是在一组交易 tids 中多次出现的频繁项 例如面包和牛奶是经常一起购买的物品 它们是通过将索引为 i 的当
  • iPhone 上的锁定方向 UIWebView

    有没有办法锁定 UIWebView 的方向 使用 Obj C JS 还是 Html 我不想有按钮或任何东西 我只想在应用程序打开时将其锁定为纵向 好像这个堆栈溢出帖子 https stackoverflow com questions 43
  • 将子视图发送到后面

    我正在尝试模仿 facebook ios 侧面菜单并让它工作 但是我遇到的问题是我无法将侧面菜单发送到后面 正如另一个问题中所讨论的那样使用 Objective C 的 iphone facebook 侧边菜单 https stackove
  • NSUserDefaults、Settings.bundle 和应用程序组

    我有一个有 2 个目标的应用程序 主应用程序和 Today 扩展 为了在这些目标之间共享设置 我打开了应用程序组功能 添加了一个组group myApp com然后使用NSUserDefaults在主应用程序和今日扩展中都是如此 var d
  • 如何从一个 ViewController 到另一个 ViewController 访问对象

    提供一些技巧来摆脱以下情况 描述 我有两个 viewController 即视图控制器1 and 视图控制器2 所以显然我们有ViewController1 h ViewController1 m and ViewController2 h
  • 如何使用所有类型的 UTI 初始化 UIDocumentPickerViewController

    我想打开 UIDocumentPickerViewController 并且它应该允许用户选择所有类型的文件 我尝试在 UIDocumentPickerViewController init 方法中提及所有 UTI 但仍然找不到某些文件 如
  • 内存分配/释放瓶颈?

    在典型的实际程序中 内存分配 释放的瓶颈有多大 欢迎来自性能通常很重要的任何类型的程序的答案 malloc free 垃圾收集的正确实现是否足够快 以至于它只是少数极端情况下的瓶颈 或者大多数性能关键型软件会从尝试减少内存分配量或拥有更快的
  • NSArray 中不重复的所有可能组合

    假设我有一个包含 3 个数字的数组 NSArray array 1 2 3 我想进行所有组合而不重复 所以我需要的是这样的 1 2 3 1 2 2 3 1 3 1 2 3 我当前的代码是这样的 NSArray array 1 2 3 int
  • 如何多次从 NSHTTPCookieStorage 中清除 cookie?

    我的桌面应用程序连接到 Google App Engine 上托管的网络应用程序 一旦通过身份验证 它就会获得一个 authtoken cookie 并为所有未来的请求传递该 cookie 这一切都有效 但现在我想添加 退出 我尝试像这样实
  • @interface 中的 Objective-c 特定 iOS 版本

    我正在尝试实现Apple Pay 并且我尝试实现两种方法 一种用于iOS10 一种用于iOS11 所以在我的实现中我有 void paymentAuthorizationViewController PKPaymentAuthorizati
  • NSCF 数组越界?

    我有一个相当简单的应用程序 使用 Core Data 和几个数组控制器 在 IB 中 除了 xcdatamodel 文件之外 没有它们的代码文件 当我运行应用程序时 我在日志中收到以下错误 应用程序仍然运行 但在转到 文件 gt 新文档 之
  • MPMediaItemPropertyPercientID 的 NSNumber 到 NSString 并再次返回

    我使用以下代码循环播放 iPhone 音乐库中的所有歌曲 NSArray songs NSArray alloc initWithArray MPMediaQuery songsQuery collections for MPMediaIt
  • UITextView自定义自动完成

    有没有办法为 UITextView 实现自定义自动完成 例如给它一个NSDictionary or NSArray需要注意的字符串 你必须自己编程 如果您实现 UITextViewDelegate 协议 则该函数 BOOL textView
  • Scala 中的模式匹配是如何在字节码级别实现的?

    Scala 中的模式匹配是如何在字节码级别实现的 是不是像一系列if x instanceof Foo 构造 还是其他什么 它对性能有何影响 例如 给出以下代码 来自Scala 示例 http www scala lang org docu
  • 如何在iPhone应用程序中创建折线图? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 找出窗口中的 UIBarButtonItem 框架?

    UIBarButtonItem不延长UIView 所以没有像框架属性这样的东西 但有什么办法我可以得到它是什么CGRect框架 相对于应用程序UIWindow 你喜欢用吗私有API https stackoverflow com quest
  • 在高负载站点中使用 PHP 的策略

    在你回答这个问题之前 我从未开发过任何足够流行的东西来达到高服务器负载 把我当作 叹气 一个刚刚登陆地球的外星人 尽管我了解 PHP 和一些优化技术 我正在开发一个工具PHP如果效果好的话 可以吸引相当多的用户 然而 虽然我完全有能力开发该
  • 模拟 Push Segue 的自定义 Segue 将 VC 变成僵尸

    使事情简短明了 我写了一个自定义的segue void perform UIView preV UIViewController self sourceViewController view UIView newV UIViewContro
  • iOS 版 Google Analytics 中的线程崩溃

    使用适用于 iOS 版本 3 0 9 以及一般的 3 0 x 的 Google Analytics 库 我们看到很多像下面这样的崩溃 它们似乎是随机发生的 Exception Type SIGBUS Exception Codes BUS

随机推荐

  • 从 Elasticsearch 返回父数据和子文档

    是否可以通过在 Elasticsearch 查询中搜索子文档来返回父数据 我有两种文档类型 例如书籍和章节 作为父 子相关 非嵌套 我想对子文档运行搜索并返回子文档以及父文档中的一些字段 我试图避免对父级执行单独的查询 Update 我能找
  • 无法通过JAVA连接到HIVE2

    Referring to Hive2 https cwiki apache org confluence display Hive HiveServer2 Clients HiveServer2Clients JDBC created a
  • iPhone / iOS Facebook SDK - 您可以在应用程序内登录并保留登录凭据吗?

    是否可以使用 Facebook iOS SDK 在应用程序内进行身份验证 而不是转到 Safari 并保留这些身份验证凭据以供下次启动应用程序时使用 当我尝试在模拟器中使用演示应用程序时 它总是转到 safari 进行身份验证 这看起来有点
  • WPF UIElement.IsHitTestVisible=false;还在回击吗?

    我从 FrameworkElement 派生一个控件以用作 VisualCollection 的容器 因为我正在使用 DrawingVisuals 进行大量自定义渲染 创建游戏地图 我的容器有几个不同的实例 彼此层叠 我只想命中测试影响当前
  • 在什么条件下单位是一种类型?

    在此被标记为重复之前 我知道这个问题与使用单位作为类型参数时有关编译错误的各种问题有关 一些例子 Why is unit用作通用接口参数时 F 类型系统会以不同方式对待吗 https stackoverflow com q 26296401
  • 自动解码 TRESTResponse 中的 GZIP?

    似乎不可能为 TRESTClient 分配压缩器或拦截 如果我将 TRESTRequest AcceptEncoding 设置为 gzip deflate 我会收到来自支持 gzip 的服务器的 gzip 编码响应 然而 在 TIdHTTP
  • 是否有办法将 javascript 代码注入到 iframe 中执行,而无需删除并重新附加包含它的脚本标记?

    Context 我正在构建一个实时 HTML CSS 和 Javascript 编辑器 可以访问到here http experiments muditameta com qckmeddler 源码可以访问here https github
  • erlang nif 共享库上未定义的符号

    我在尝试将我的共享库 erlang nif 链接到另一个共享库 libpurple 时遇到麻烦 该共享库使用 dlopen 加载其他共享库 插件 问题是mylib so链接到libpurple so libpurple so使用dlopen
  • 使用 Jquery 删除逗号

    我需要一些从字符串中删除逗号的代码 我目前在 PHP 的 number format 中有各种数字 我使用 Jquery 将某些内容发布到更新页面 并且我需要从类中删除逗号 例如 这是一些代码 span class money 1 234
  • 如何默认显示连接线?

    你好 我刚刚开始使用这个 jquery 树 并想知道是否有任何属性可以设置以使连接线始终可见 选项中没有可用的属性将连接线设置为始终可见 但您可以使用以下命令向对象添加一个类fancytree container打开连接器的类 如果您希望连
  • 在 jQuery 中一起使用 :visible 和 :first-child

    我试图在 jQuery 中同时使用 visible 和 first child 伪选择器 但似乎没有成功 我有以下 HTML div a class action style display none Item One a a class
  • 如何在 Hadoop 中访问和操作 pdf 文件的数据?

    我想使用hadoop读取PDF文件 这怎么可能 我只知道hadoop只能处理txt文件 那么有没有办法将PDF文件解析为txt 给我一些建议 一个简单的方法是创建一个序列文件 http hadoop apache org common do
  • Android 媒体播放器停止后无法播放

    我有 5 首歌曲的音乐播放列表 我只希望只要我在应用程序中 播放和停止按钮就可以工作 当我想要的时候我可以停止音乐并开始另一个 现在这是如何工作的 音乐在 播放 按钮上播放 当我单击 停止 按钮时 它停止 但后来我想播放其他歌曲 或再次播放
  • 由于构建后步骤,未加载本机 dll 的符号 (pdb)

    我有一个用符号构建的本机发行版 dll 有一个构建后步骤会修改 dll 构建后步骤会进行一些压缩 并可能附加一些数据 pdb 文件仍然有效 但是 WinDbg 和 Visual Studio 2008 在构建后步骤之后都不会加载 dll 的
  • PHP 中的类发生了什么?

    如果我有这段代码 则会回显字符串 test 这是 PHP 5 3 中的内容 这是一些不应该依赖的疏忽 还是在 PHP 中实现多重继承的某种方式 class Test1 function getName return this gt name
  • 反应改变点击时列表项的类别

    我有一个像这样的反应元素 import React PropTypes Component from react class AlbumList extends Component constructor props super props
  • 为什么delete可以对const指针执行,而free却不能?

    我刚刚注意到指针传递给delete can be const合格而通过的人free不能 这对我来说确实是一个惊喜 在 C 中重载为operator delete应该有一个像这样的签名 void operator delete void p
  • 联合类型和额外属性

    当使用可以同时是联合类型情况的参数调用函数时 有没有办法让 TypeScript 编译器产生错误 例子 interface Name name string interface Email email string type NameOrE
  • Sails.js:如何使用水线连接多个模型?

    我有 3 个模型 大陆 国家和城市 我想加入这些模型以获得结果 大陆 js attributes continent Id type string primaryKey true continent Name type string des
  • 对象 Switch 语句的高性能 Objective C 替代方案

    我有一个函数 我想接受一个 NSString 和一个 int 参数 然后使用 switch 语句返回一个计算值 就像将 int 乘以某个常量一样 具体取决于提供的 NSString 内容 显然 switch 语句不适用于 Objective