数据封装...?

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(使用前将#替换为@)

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

  • 在 Objective C 中使用下划线作为属性名称前缀 [重复]

    这个问题在这里已经有答案了 我以前避免在变量名中使用下划线 这可能是我大学 Java 时代的遗留下来的 因此 当我在 Objective C 中定义属性时 我自然会这样做 In the header interface Whatever N
  • 从 Plist 中存储和检索 [重复]

    这个问题在这里已经有答案了 可能的重复 iOS 在 plist 文件中存储两个 NSMutableArray https stackoverflow com questions 6070568 ios store two nsmutable
  • 使用 UIImagePickerController 的应用程序在拍照后选择“使用照片”时冻结

    我现在正在开发一个简单的照片和视频捕获应用程序 该应用程序成功地允许用户按下按钮即可拍摄照片或视频 但是 一旦您完成拍摄照片或视频 它就会提供 2 个选项 重新拍摄 和 使用照片 或 使用视频 具体取决于您使用的选项 如果用户点击 重新拍摄
  • 如何使用 ZBar 读取器的 scanCrop 属性?

    我正在使用 iPhone 的 ZBar SDK 来扫描条形码 我希望阅读器仅扫描特定的矩形而不是整个视图 为此需要将阅读器的 scanCrop 属性设置为所需的矩形 我很难理解必须设置的矩形参数 有人可以告诉我如果在纵向视图上它的坐标是 我
  • 维护 UISegmentedControl 中的选择

    我可以保持 UISegmentViewControl 段的选定状态吗 即 即使用户选择了另一个段 也可以保持一个段显示为选中状态 我似乎在任何地方都找不到任何可以做到这一点的东西 这是不可能开箱即用的 看如何才能选择 UISegmented
  • Objective-c中的贝塞尔曲线算法

    比我聪明的人可以看一下这个吗 我正在尝试实现我发现的贝塞尔曲线算法here http webtweakers com swag GRAPHICS 0074 PAS html在 Objective c 中 输出是错误的 我想我正确地转换了代码
  • NSMenuItem、自定义视图和 mouseUp 的奇怪问题:

    我在这里遇到了一个非常非常奇怪的 NSMenu 问题 我使用的大约一半的 NSMenuItems 通过 NSMenuItem 上的 setView 方法具有自定义视图 在此自定义视图中 我实现了 mouseUp 来捕获用户单击菜单项的时间
  • 如何在内存中存储分子?

    我想将分子存储在内存中 这些可以是简单的分子 Methane CH4 C H bond length 108 7 pm H H angle 109 degrees But also more complex molecules like p
  • Apple 帮助创作

    我正在跟进本指南 http developer apple com library mac documentation Carbon Conceptual ProvidingUserAssitAppleHelp authoring help
  • CocoaPods 生成无效的项目文件(未找到标头)

    我有一个带有 Podfile 的项目文件 如下所示 platform ios 7 0 def import pods pod Specta 0 1 8 pod Expecta 0 2 1 pod RestKit 0 20 3 pod Mag
  • ObjC <-> Swift 桥接和工厂方法

    我想从 Swift 使用一些 Objective C 类 由于超出了这个问题范围的原因 我的班级init方法被标记为不可用 相反 有一个工厂方法 这是我的班级的简化形式 interface MyClass NSObject instance
  • iPhone ImageView序列动画

    嘿 尝试将一个简单的 png 序列动画放入我的应用程序中 我在 IB 中放置了第一个框架 并将图形动画出口连接到它 序列中有 54 个 png 名称为 Comp 1 0000 png 到 Comp 1 00053 png 这是我的代码 vo
  • iOS SDK:MapKit MKPolyLine 未显示

    我试图在地图上显示多段线 但该线没有显示 我尝试了很多事情 但注意到似乎有用 我检查了核心数据函数 它正在返回数据 所以这不是问题 它必须是我在地图点创建或地图上绘制的某个地方 我猜 我确信一定是某个地方出了点小错误 但我找不到它 My c
  • UITableViewCell的detailTextLabel滚动时消失

    我正在使用一个字符串数组 我在其中设置detailTextLabel从 最初所有字幕都设置正确 但如果我滚动detailTextLabel消失 UITableViewCell tableView UITableView tableView
  • 如何使用苹果钥匙串?

    我正在尝试使用scifihifi iphone 来自 Github http github com ldandersen scifihifi iphone tree master security存储和检索用户名和密码 但是 当我添加课程时
  • 获取 UIView 的视图控制器(iphone)

    我这样做是为了获得视图 self superview viewWithTag 10 但我怎样才能获得该视图的视图控制器 就像您可以获得视图控制器的视图一样 我想采用另一种方式 以便我可以向该视图控制器发送消息 调用方法 例如 self su
  • EKEvent接受邀请

    你如何接受EKEventiOS 中的邀请 我知道这有可能梦幻般的 日历 5和其他日历应用程序具有此功能 但我没有看到公开的非只读属性来更改用户有关事件的状态 知道如何做到这一点吗 Thanks 事实证明 经过更多研究后 所有这些应用程序都只
  • 如何从 NSString 中获取每一行?

    如果我有一个包含文本文件的 NSString 如何获取 NSString 的 NSArray 其中每个 NSString 都包含该文件的一行 在 10 5 中我这样做了 NSArray lines str componentsSeparat
  • Objective C“#if”语法

    我对 如果 或 如果 有点困惑 if当我查看一些类时我看到的语法 例如 if someConstant someNumber do something elif etc versus if someConstant someNumber d
  • NSCF 数组越界?

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

随机推荐

  • 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