数据封装...?

2024-01-08

谁能向我解释一下 Objective-C 中的数据封装是什么?有人告诉我这是 Objective-C 的一个重要概念,但我不明白为什么......

向我解释一下,就像我 5 岁一样,然后又好像我 25 岁一样……

谢谢你的时间, ~丹尼尔


From http://mobile.tutsplus.com/tutorials/iphone/learn-objective-c-2/ http://mobile.tutsplus.com/tutorials/iphone/learn-objective-c-2/ :

我们所说的数据封装是指 包含该数据(可以这么说) 通过方法意味着我们可以访问它 需要使用方法。你们中的一些人 已经用其他语言编程并且 没听说过数据封装 可能想知道为什么我们这样做 方式。答案是,通过 封装数据,有一个很好的 开发商之间的缓冲 类和类的用户。因为 类方法管理和维护 类中的属性,它们 可以更轻松地维护数据 正直。另一个主要好处是 当开发者分发他的 类,使用它的人没有 担心的内部结构 根本没有课。开发人员可能会更新 使其更快或更快的方法 高效,但这次更新是 对类的用户透明 因为他/她仍然使用同样的方法 无需更改他/她的代码。

简而言之,向用户提供开发人员希望他们拥有的东西,并“保护”其他一切。开发人员可以更改任何内部内容,而无需用户重写其代码。

如果开发人员不遵守数据封装,那么每次发布新版本的库、代码片段或整个程序时,我们都需要重写代码。

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

数据封装...? 的相关文章

  • 没有这样的模块“Ensembles”错误 - 导入 Objective-C 框架以在 swift 项目中使用

    我将 Ensembles 添加到我的 Swift 项目 在这里找到https github com drewmccormack ensembles https github com drewmccormack ensembles 我没能在我
  • Objective-C 实现文件中方法名后面的分号

    void designImageViewNow some code here 分号写法正确吗 就在实现文件 Objective C 中方法名称之后 正文括号之前 这行得通吗 当我正在开发 iPhone 应用程序时 我错误地将分号放在了一个自
  • iOS:调用 Objective-C 方法的处理开销是多少?

    我正在编写一些实时音频处理代码 该代码将在音频单元的渲染回调中执行 该线程处于系统识别的最高优先级 Apple 指示最大限度地减少此调用中进行的处理量 他们的建议之一是避免 Objective C 方法调用 But why 调用 Objec
  • 为 Linux 编译 Objective-C 应用程序(API 覆盖范围)

    我可能在这里问一些奇怪的问题 但我不确定从哪里开始 问题是我正在考虑使用 Obj C 和 Foundation 类在 Mac 上编写一个命令行工具 但存在一个非常大的风险 那就是我希望能够为不同的 Linux 发行版编译它 以便将来作为服务
  • 从视频创建缩略图 - 提高速度性能 - AVAsset - iPhone [重复]

    这个问题在这里已经有答案了 我正在使用基于以下线程中的代码的代码来生成视频缩略图 从 iPhone SDK 中的视频 URL 或数据获取缩略图 https stackoverflow com questions 1347562 gettin
  • NSHTTPCookieStorage 是否跨应用程序持续存在?

    所以我只是好奇 NSHTTPCookieStorage 是否跨应用程序持久存在 或者仅在当前应用程序本地 我希望在另一个应用程序中收集的一些 cookie 可以在搜索应用程序中访问 是这样的吗 谢谢 PS 这是在 iPhone 或 iPad
  • 您是否标记 UIView 或将它们保留为属性?

    这主要是一个风格问题 但自从我开始为 iPhone 编程以来 我一直很好奇其他人的想法是什么 当您的 iPhone 应用程序中有一个 UIView 并且需要在应用程序的其他位置访问它时 通常在视图控制器中的另一个函数中 您是否喜欢用整数标记
  • 如何在 NSMutableArray 中实现“按值分组”?

    我正在使用 NSMutableArray 我想像在 SQL 中那样按日期获取值group by log date logMuArray log currenttime 4 30pm log date 11 12 2011 log durat
  • 如何使用 iPhone SDK 实现可滑动的图像堆栈(例如照片应用程序)?

    我想获取一堆图像 或者可能是一组用于下载图像的 URL 并以全屏方式显示它们 一次一个 使用 iPhone SDK 使用用户滑动来平滑地为堆栈中的下一个图像设置动画 Apple 的 Photo app 似乎可以做到这一点 此外 如果尚未检索
  • 在横向中自动调整 UITableCells 内容的大小

    在 UITableView 中 我通过 UILabels 将内容添加到单元格中 定义最佳尺寸 与单元格宽度允许的一样大 我注意到只有tableView contentSize width是可靠的 因为cell contentView bou
  • 在 iOS 上将 NSString 转换为 NSDate 的正确方法?

    我一直在使用此方法将常规 NSString 对象转换为 NSDate 但尝试向 Apple 提交更新 但遭到拒绝 在 iOS 中还有什么其他方法可以做到这一点 NSString date str 2011 08 12T12 20 00Z N
  • 在 XCode 中链接静态 ObjC 库的过程

    我正在尝试链接到静态库 但不断收到链接器错误 我发现了一些发布示例的网站 但我无法看到我做错了什么 首先 我创建一个链接到我的库的项目 添加 gt 现有文件找到我的 xcodeproj 文件选择 将项目复制到目标组文件夹 选择我的宿主项目作
  • Objective-C – 拥有包含 TestFlight SDK 的 TestFlight 配置

    我已按照 TestFlight 的说明复制 发布 配置 我还使用 TestFlight SDK 从我的应用程序获取实时报告 通过这样做 我必须在我的应用程序中包含一些 TestFlight 代码 当然 我不想在我的应用程序的发布版本中包含此
  • UIImageJPEGRepresentation 在视网膜显示屏上提供 2x 图像

    我有这段代码 它创建一个图像 然后向其添加一些效果并缩小其大小以使其largeThumbnail UIImage originalImage UIImage imageWithData self originalImage thumbnai
  • PFQueryTableViewController 错误

    我正在遵循在线教程 使用 Parse 作为后端创建照片共享应用程序 我已经运行了两次教程 两次都从头开始创建应用程序 但在同一位置仍然出现相同的错误 我到处寻找解决方案 但仍然没有运气 我正在使用 PFQueryTableViewContr
  • BigQuery 未显示链接的 Firebase Analytics 事件日志的任何数据集

    我将我的帐户链接到 Big Query 但 Firebase Analytics 事件不会自动加载到 BigQuery 中 显示 未找到数据集 警告 我的工作进度附在下面 请查收 I have getting firebase Analyt
  • 如何删除 UITableView 中的缩进?

    首先 我对此很陌生 我很可能忘记了一些非常简单的事情 问题 我正在制作一个应用程序 在 a 中显示来自 imgur com 的随机图像tableView 由于某种原因 所有单元格都会缩进少量 如下图所示 我摆弄了许多设置storyboard
  • 未知异常和崩溃

    当我尝试快速滚动表格视图或从远程重新加载数据时 我的应用程序崩溃了 当我先进行远程获取然后滚动表格视图时 一切似乎都工作正常 我不知道下面的崩溃日志意味着什么 它只是有时工作正常 有时崩溃 Incident Identifier 710A1
  • UITabBarController 为 TabBar 的每个 ViewController 提供不同的 Storyboard 文件

    我的团队正在开发一个具有 UITabBarController 的应用程序 我们正在使用 Storyboard 来开发界面和流程 由于我们是一个团队 所以我们不能将所有流程放在一个故事板中 因为这会导致与 SVN 同步出现问题 所以 解决方
  • 诊断和仪器均缺少“僵尸”选项

    运行 Xcode 4 0 2 Zombie 选项丢失 其他 SO 帖子建议找到它的两个地方 Product gt Run looks like this Product gt Profile looks like this 奇怪的是 我之前

随机推荐

  • Angular Js 和 google api client.js (gapi)

    我花了一天的时间才让它发挥作用 所以我认为我的经验可能对某人有用 也许其他一些人会发现改进 所以我两天前就开始了 angularJS 我希望它与 Google Cloud Endpoints 一起创建后端接口 我的麻烦来了 gapi 的 j
  • 如何从 Main 调用 void 函数

    在我的程序中 我试图从 Main 调用 void 函数 但我无法找出正确的方法 Main位于最底部并且void GetTicketType char Choice 是我需要调用的函数cout门票类型 Purpose This program
  • 无法加载 tsc.ps1,因为该系统上禁用了运行脚本

    在 PowerShell 上 执行时收到错误消息tsc 这以前从未发生过 我不确定是否应该混合 PowerShell 安全设置来纠正此问题 例如基于此 PowerShell 表示 此系统上禁用了脚本执行 https stackoverflo
  • 如何检查数据库中是否存在 Oracle 视图?执行查询之前

    我需要知道一种在执行查询之前从 Java 桌面应用程序检查当前数据库中是否存在 Oracle 视图的方法 否则我会遇到很多麻烦 提前致谢 您随时可以查询Oracle数据字典 就像是 SELECT COUNT FROM all views W
  • Haskell 应用变压器的示例

    www haskell org 上的 wiki 告诉我们以下有关 Applicative Transformer 的信息 那么应用变压器在哪里呢 答案是 我们不需要适用函子的特殊变压器 因为它们可以以通用方式组合 http www hask
  • 为什么 MyPage._meta.get_field("title").verbose_name 会更改 Wagtail 中所有标题的标签?

    我的 Wagtail 项目中有几个应用程序 其中之一是 新闻 其中包含新闻 页面 我想在管理中将标题的标签 标题 覆盖为 标题 News meta get field title verbose name Headline 结果 我在所有应
  • 如何使用 Ant 运行类别/套件中的所有 JUnit 测试?

    我在类似于中描述的设置中使用 JUnit 类别和 ClassPathSuite这个答案 https stackoverflow com questions 2176570 how to run all tests belonging to
  • Android - 短信广播接收器

    我一直在努力得到this https stackoverflow com questions 1944102 android sms receiver not working程序可以工作 但到目前为止还没有运气 我找不到我哪里做错了 不知道
  • Clojure 更新映射多个值的惯用方法

    这可能很简单 但我就是无法克服它 我有一个嵌套映射的数据结构 如下所示 def m 1 1 2 2 5 3 10 2 1 2 2 50 3 25 3 1 42 2 23 3 4 我需要设置每个m i i 0 这在非函数式语言中很简单 但我无
  • 将 RSA 私钥导出到 RSAPublicKey 的命令行工具

    今天我发现有两种带有 PEM 格式标头的公钥格式 例如 X 509 SubjectPublicKeyInfo PEM header BEGIN PUBLIC KEY 对应于短标头形式 BEGIN PUBLIC KEY MIIBIjANBgk
  • 我可以在绕过加载命名空间的同时加载 RData 文件吗?

    假设我的一些用户无法更改他们的 R 环境 但我需要他们能够打开 RData 文件 这些环境文件需要加载一个包 确切地说是httpuv 我们不关心包 我们不需要它的功能 我们只需要获取数据 有没有办法强制 R 在加载 RData 文件时绕过加
  • Nim 中的价值与参考模型是什么?

    NOTE 我不是在问指针和引用之间的区别 对于这个问题来说它是完全无关的 我找不到明确说明的一件事 Nim 使用什么模型 就像 C 一样 你有价值观并且与new您创建指向数据的指针 在这种情况下 变量可以保存指向指向 数据的指针的指针 或者
  • Android 中的 BLE 广告

    我正在开发一个应用程序来在 android 中发送 BLE 广告包 我使用 AdvertiseData 和 AdverstiseSettings 类来生成广告数据包 但是当我执行 StartAdvertising 时 它总是给我一个错误代码
  • 从 ant 通过 sshexec 将密码传递给“su”命令

    有什么方法可以将密码传递给linux su 命令吗 我正在尝试使用 sshexec 和 Ant 自动化部署 作为其中的一部分 我需要执行 su 命令 但我找不到为其提供密码的方法 su 命令没有像 sudo 那样的 S 开关 我尝试在 ss
  • 调整表单大小,同时保持纵横比

    我有一个窗口 在其中显示图片 我希望用户能够调整此窗口的大小 但是 保持其与图像的宽高比相同 这样窗口上就不会出现大的空白区域 我在 OnResize 事件中尝试的是这样的 DragWidth Width DragHeight Height
  • 在 Google 应用程序脚本、电子表格中添加前导零

    我有一个主表 我正在从那里复制值并将其放入新选项卡中 但是当我在新选项卡中显示数字时 它会去掉前导零 例如 在我的主表中 我有 00734 我将其复制到新选项卡 它显示为 734 这是我用来复制值的代码 var values active
  • 如何为 Objective-C 和 Swift 制作一个通用的 iOS 库?

    我需要为 iOS 创建一个库 框架或静态库 我还没有决定 它可以在 Objective C 和 Swift 项目中使用 这样做的最佳方法是什么 在我看来 我有三个选择 用 Objective C 编写库并添加对 Swift 的支持 桥接头文
  • 如何使用 Fakes Framework shims 模拟/隔离 VS 2012 中的内部类?

    所以 问题是我的程序集中有一堆内部类 由我想要测试的类使用 由于访问器已从 VS2012 中删除 我可以使用 InternalsVisibleTo 这非常有效 除了当我尝试 shimify 我的内部类时 它们对 Fakes 框架不可见 我还
  • 如何使用 CSS 调整图像大小以适合其容器

    我想制作具有恒定宽度和高度的 div 其中包含尺寸未知的子图像 像这样的东西 我最接近的是max height inherit max width inherit但它改变了纵横比 parent border 1px solid width
  • 数据封装...?

    谁能向我解释一下 Objective C 中的数据封装是什么 有人告诉我这是 Objective C 的一个重要概念 但我不明白为什么 向我解释一下 就像我 5 岁一样 然后又好像我 25 岁一样 谢谢你的时间 丹尼尔 From http