typedef struct 与 Object - 优点

2023-12-26

我计划定义一个类,其属性中包含 x/y 网格的坐标。但是,我不确定实现此设计的“最佳”方法。这是一个很简单的问题,我只想正确地做并有一个理由!

一种解决方案是拥有两个属性,类型为 'int',一个用于 x,一个用于 y,在对象内。

另一种是定义一个包含 x/y 值的两个 int 的 typedef 结构并命名它<ClassPrefix>Coordinate。如同CGSize?

还有其他/更好的方法可以做到这一点吗?哪个是首选?不知道如何证明这两种方式的合理性。

Thanks!

Tim.


“首选哪一个?”的答案问题取决于几个因素:

  • 您计划创建多少个这样的项目?- 如果答案是“数百万”,struct胜利;如果答案是“五十八”,则对象获胜。
  • 您需要在其上定义方法吗?- 如果答案是“是”,则对象获胜;否则,struct也许OK。
  • 你打算定义它的数组吗?- 如果答案是“是”,struct可能是一个更好的选择。
  • 您需要经常创建和销毁它吗?- 如果答案是“是”,struct可能是一个更好的选择。

最终,您的设计约束可以帮助您确定什么是最好的;不存在普遍“更好”的数据结构。

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

typedef struct 与 Object - 优点 的相关文章

  • 检查定位服务是否开启

    我一直在对 CoreLocation 进行一些研究 最近 我遇到了一个在其他地方 但在 Objective C 和 iOS 8 中 已经讨论过的问题 我觉得问这个问题有点傻 但是如何在 iOS 9 上使用 swift 检查是否启用了位置服务
  • UICollectionView 自动滚动到 IndexPath 处的单元格

    在加载集合视图之前 用户设置集合视图数组中的图像数量 所有单元格都不适合屏幕 我有 30 个单元格 但屏幕上只有 6 个 问题 如何在加载 UICollectionView 时自动滚动到具有所需图像的单元格 新的 编辑过的答案 将其添加到v
  • ios 用户如何取消 Facebook 登录?

    当用户到达此屏幕时 无法取消 我能做些什么 为了首先获得这个视图 我正在运行 NSMutableDictionary params NSMutableDictionary dictionaryWithObjectsAndKeys vid l
  • NSString – 静态还是内联?有性能提升吗?

    如果我写的话会有任何性能提升吗 NSString helloStringWithName NSString name static NSString formatString Hello return NSString stringWith
  • 打乱 NSMutableArray 而不重复并显示在 UIButton 中

    在我看来 我有 12 个按钮 一个数组包含 6 个名称 我想在其中打印数组名称UIButton标题 这是我的代码 texts NSMutableArray alloc initWithObjects 1 2 3 4 5 6 nil UIBu
  • iPhone 应用程序中的异步、同步、线程

    我正处于一个应用程序的设计阶段 该应用程序将利用 REST Web 服务 并且在使用异步 同步和线程方面遇到了困境 这是场景 假设您有三个选项可供深入研究 每个选项都有自己的基于 REST 的资源 我可以使用同步请求延迟加载每个请求 但这会
  • 网站在 iPhone 屏幕右侧显示空白区域

    我遇到问题http eiglaw com http eiglaw com iPhone 屏幕右侧显示约 25 像素宽的空白 边框 我在 stackoverflow 上研究了这个问题 这些帖子是相关的 但是当我尝试提供的各种解决方案时 我无法
  • 使用 iPhone 中的地图视图读取当前位置名称

    我读取了当前位置的纬度和经度值 然后成功将该位置固定在 iPhone 中 现在我想使用这个纬度和经度值读取该地名 我使用以下代码来读取查找当前位置 void mapView MKMapView mapView1 didUpdateUserL
  • 带操作按钮的颤动本地通知

    我在我的 flutter 项目中尝试了 flutter 本地通知插件 它在简单通知上工作正常 但我需要带有操作按钮的通知功能 请帮助我或建议我实现此功能 不幸的是 flutter local notifications 插件尚不支持操作按钮
  • 如何将 UILabel 的值绑定到实例变量?

    我是 mac objective c 的新手 我的问题是 我想知道是否可以将 UILabel 文本绑定到变量 而不必在值更改时手动设置文本 例如 在 Mac OS 上 当我打开新的 Finder 窗口并删除文件时 任务栏中的全局可用空间就会
  • 如何接收有关与我共享的记录中所做更改的 CloudKit 通知?

    我有两个 iCloud 帐户 A and B 在两个不同的设备上 来自其中之一 A 我将 ckrecord 分享给另一个人 B 像这样 let controller UICloudSharingController controller p
  • UIButton的高亮状态由什么控制事件开始和结束

    我正在创建类似钢琴的视图UIButton作为钢琴键 什么UIControlEvents当按钮获得和失去突出显示状态时 我应该监听以获得回调吗 我试图创建子类UIButton并添加属性观察者highlighted并且运行良好 然而 有时我需要
  • 覆盖层不与 UITableView 一起滚动 - iOS

    我有一个 UITableView 类 它使用以下方法在转到下一个屏幕时调用加载覆盖 问题是这个加载屏幕不随列表滚动 所以如果你滚动一点并单击某些东西 加载屏幕不会显示 因为它位于顶部 如何让加载屏幕始终保持在 UITableView 的顶部
  • 在 XCode 中链接静态 ObjC 库的过程

    我正在尝试链接到静态库 但不断收到链接器错误 我发现了一些发布示例的网站 但我无法看到我做错了什么 首先 我创建一个链接到我的库的项目 添加 gt 现有文件找到我的 xcodeproj 文件选择 将项目复制到目标组文件夹 选择我的宿主项目作
  • 将 SSLSetEnabledCiphers 与 AFNetworking 结合使用来禁用弱密码

    我正在尝试禁用一些密码 弱 例如单个 DES 单个 DES 40 位等 我尝试过使用这段代码在 Cocoa 中使用 CFSocket CFStream 时如何设置 SSL 密码 https stackoverflow com questio
  • Objective-C – 拥有包含 TestFlight SDK 的 TestFlight 配置

    我已按照 TestFlight 的说明复制 发布 配置 我还使用 TestFlight SDK 从我的应用程序获取实时报告 通过这样做 我必须在我的应用程序中包含一些 TestFlight 代码 当然 我不想在我的应用程序的发布版本中包含此
  • 减少 CoreData 的调试输出?

    我正在开发一个使用 CoreData 的 iOS macOS 项目 它工作正常 但它会向控制台输出大量调试信息 这使得控制台无法使用 因为我的打印语句隐藏在所有与 CoreData 相关的内容中 我有一个非常简单的 CoreData 设置
  • 在 Objective C 的类方法中引用类本身

    我希望我没有跳过 ObjC 手册中的这一部分 但是是否可以从类的一个类方法中引用该类 就像在 PHP 中一样 您将使用 this 来引用当前实例 而 self 引用实例的类 this 的 ObjC 等价物将是 self 那么 PHP 的 s
  • 哪些 Flutter 插件或功能可以利用外部 iOS/Android 显示器来显示与主显示器不同的内容

    我正在构建一个跨平台应用程序 需要在外部显示器上显示不同的视图 通常通过连接到 LCD 投影仪的 HDMI 适配器电缆连接 Flutter 是否能够在内置的外部显示器上显示不同的屏幕 在现有的 Flutter 插件中还是使用现有的 Flut
  • iOS - UITableViewCell 使文本加粗

    我有一个字符串 NSString userInfo James Johnson james 我想做的就是大胆James Johnson并保留 james正常字体 所以我尝试过的是使用NSAttributedString但为了完成这个过程 我

随机推荐

  • System.IO.File'不包含Unity3D中'AppendAllText'错误的定义?

    我对 Unity3d 非常陌生 并尝试打开一个现有项目 播放时显示以下错误 资产 脚本 DataAccess cs 39 30 错误CS0117 System IO File does not contain a definition fo
  • Laravel - 无法使用 storeAs 将文件保存到 public_path

    我无法将文件上传到 Laravel 5 4 中的 public path 文件夹 我不明白出了什么问题文档让它看起来很简单 https laravel com docs 5 4 filesystem file uploads request
  • WebClient:忽略 HTTP 500

    我正在编写一个程序 它从服务器检索一些数据 对其执行一些操作 并将输出保存到 csv 文件 我遇到的问题是服务器 我不负责 总是返回 HTTP 500 内部服务器错误 我已经与负责该问题的团队进行了交谈 虽然他们意识到了该错误 但他们表示该
  • 为什么不在生产环境中使用 Django 提供静态文件?

    我遇到了以下示例settings py if settings DEBUG urlpatterns static settings MEDIA URL document root settings MEDIA ROOT 并被告知 stati
  • PCL kd-tree 实现速度极慢

    我正在使用基于点云库 PCL 的 C 实现 kd 树最近邻 NN 搜索 该数据集包含约 220 万个点 我正在为每个其他点搜索 NN 点 搜索半径设置为 2 0 要完全计算出来 大约需要 12 个小时 我使用的是带有 4GB RAM 的 W
  • Windows 窗体在 Visual Studio 窗体设计器中消失了

    昨天我在 Visual Studio 的表单设计器中编辑了一个表单 当我今天回到它时 设计师什么也没展示 我可以打开属性窗口 选择所有不同的组成组件并编辑它们的属性 但它们没有显示 应用程序构建良好 表单可以照常运行 我尝试了几种不同的解决
  • 邮递员脚本:“pm 未定义”

    我尝试在 Postman 中编写一个预请求脚本 我想提出请求 所以我尝试使用pm sendRequest https www getpostman com docs postman scripts postman sandbox api r
  • Node.js 流/管道错误处理(错误时更改响应状态)

    我的 Cassandra 数据库中有数百万行 我想以 zip 文件的形式流式传输到客户端 不希望内存中存在巨大的 zip 文件 我正在使用 Cassandra Node 驱动程序中的 Stream 函数 通过管道传输到 Transforme
  • 参数不是 NaNunction,未定义

    我正在从 AngularJS 1 2 26 迁移到 1 3 2 并收到 这不是最好的错误消息 但看起来好像是说我的控制器未定义 我可以不再以这种方式定义控制器吗 错误 错误 areq 糟糕的论点 参数 welcomeController 不
  • 无法让 cocoon 在 Ruby on Rails 4 上工作

    在过去的几个小时里 我一直在努力让这个工作正常进行 但由于某种原因我做不到 我几乎完全按照 github 存储库链接上指示的步骤进行操作 我使用以下所有步骤创建了一个新应用程序 rails new demo app cd demo app
  • Firemonkey ScrollBox 错误

    我们在 Firemonkey 的 ScrollBox 组件中遇到了一个奇怪的错误 因为TGrid继承自TScrollBox它也会影响所有网格 在我们的一些开发机器上 一切正常 而在其他机器上 就会出现错误 我们未能检测到系统之间的任何模式
  • 在 /admin/ 安装 jinja2 TemplateDoesNotExist 后

    我已经安装了 jinja2 之后 DIRS 停止工作 我必须手动包含它们 更改 APP DIRS 没有帮助 模板看起来像这样 TEMPLATES BACKEND django template backends jinja2 Jinja2
  • LESS - 多个不同的类具有相同的风格?

    你会如何用 LESS 写出下面这种风格 nav a hover nav a focus footer a hover footer a focus fullscreen container a hover fullscreen contai
  • Ansible:如何将默认值应用于列表的每个复杂参数

    我有以下列表和默认变量 my list complex key1 val1 key2 val2 key3 val3 keyN valN key1 val1 key3 val3 keyN valN key2 default2 key3 def
  • 如何确定Microsoft Edge是否是默认浏览器?

    是否有可靠的编程方式来确定 Microsoft Edge 是默认浏览器 我知道一种选择是使用IApplicationAssociationRegistration QueryCurrentDefault https msdn microso
  • 如何在 Laravel 9 Validation 中实现上述验证?

    我正在尝试实现某些 Laravel 验证标准 但我很难实现这些标准 请同样帮助我 我正在使用 laravel 9 和 PHP 8 1 描述 我有一个 API 其中包含以下提到的输入 A 公司名称 必填b company number 根据条
  • 使用 telegram bot API 创建新组

    如何使用 Telegram 中的机器人创建新群组 据我所知 机器人本身无法做到这一点 那么是否有可能将机器人实现为常规程序user How Update 这就是我要的http t me polyglossia http t me polyg
  • 为数据网格行创建上下文菜单

    我有一个可能有很多行的数据网格 当用户右键单击其中一行时 我需要为每一行显示一个上下文菜单 并在用户单击该选项时执行一个操作 相同的操作 但根据当前选定的行不同的数据项 对此最好的策略是什么 我担心每一行的 ContextMenu 都太过分
  • preRenderView 禁用 ajax

  • typedef struct 与 Object - 优点

    我计划定义一个类 其属性中包含 x y 网格的坐标 但是 我不确定实现此设计的 最佳 方法 这是一个很简单的问题 我只想正确地做并有一个理由 一种解决方案是拥有两个属性 类型为 int 一个用于 x 一个用于 y 在对象内 另一种是定义一个