Objective C - 隐藏 iVar

2024-01-06

这是我的问题。

假设我有一个名为 WebServiceBase.h 的类。我需要在该类中添加一个名为 NSString *requestData 的 iVar。但我不需要将该 iVar 添加到头文件中并使其对外部人员可见。 (如果我将其作为类库分发)

另外,我需要能够在从 WebServiceBase.h 扩展的其他类中访问此 requestData iVar。 (这些扩展类是我自己写的,不是外部人写的)

我尝试在类扩展中声明 requestData iVar。但扩展类就看不到它了。

有什么解决办法吗?我需要保护我的数据并使其对外部世界隐藏。


您可以通过以下方式将您的 ivars 定义为受保护@protected关键字,这意味着您的类和所有子类都可以毫无问题地访问它,但编译器不允许其他不从基类继承的类这样做:

@interface Foo : NSObject
{
@protected
    NSObject *a;
}

就这么简单,并且已经为您提供了可以从 Objective-C 获得的所有安全性。

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

Objective C - 隐藏 iVar 的相关文章

  • Swift - 选择值后隐藏 pickerView

    我发现了类似的问题 他们的答案很有帮助 但我坚持最后一件事 我试图在点击字段时显示 pickerView 然后选择数据时 我希望 pickerView 隐藏 我可以从 pickerView 获取数据来隐藏 但是 pickerView 后面仍
  • ITMS-90535 无法使用最新的 Google Signin SDK 发布 iOS 应用程序

    我正在使用 xcode 7 GM 种子并通过 cocoapods 安装了最新的 Google Signin SDKpod Google SignIn 当我尝试将我的应用程序发布到苹果应用程序商店时 我收到附加错误 Help 以下是 Goog
  • Transit MKDirectionsRequest 产生 null 错误 Error Domain=MKErrorDomain Code=5 "(null)"

    我正在尝试使用 MapKit Directions Request 来获取两个坐标之间的交通方向 当我切换到其他 非 Transit 类型时 下面的代码可以工作 但是当我切换到 Transit 时 它会抛出一个错误 该错误在 Apple 文
  • 如何将 NSIndexpath 转换为 NSInteger 或简单的 int?

    我需要将 nsindexpath var 转换为 NsInteger 或简单的 int 例如 int rowIndex mGoogleBaseTable selectedRow mGoogleBaseTable is a NSTable t
  • UICollectionView 未出现

    我正在尝试设置UICollectionView 以编程方式在我的视图控制器中扩展UIViewController 由于某种原因 我的收藏视图根本没有显示 以下是我所拥有的 为什么没有出现 我将它连接到委托和数据源并将其添加为子视图self
  • 沿着预定路径移动图像?

    是否可以通过按下 iphone SDK 中的按钮来将图像设置为沿着预定路径运动 我不是在寻找任何奇特的东西 我正在研究一个简单的概念 但这会节省大量动画工作 是的 您可以通过创建一个路径来为任何 CALayer 制作动画CAKeyframe
  • UISearchController 保留问题

    我正在尝试使用 UISearchController 但是我遇到了无法解决的保留问题 MainTableview 有两个部分 第1节 基于某些正则表达式过滤数据 第2节 All Data 我将 UISearchController 添加到我
  • 在 Swift 中自动移动 UISlider

    我想在按下按钮时将 UISlider 从 minValue 循环移动到 maxValue 并在再次按下按钮时将其停止在当前位置 我想使用 Swift 我遇到的主要问题是函数 slider setValue 太快了 我希望动画更慢 IBAct
  • SpriteKitPhysicsBody非矩形碰撞

    pipeUp physicsBody SKPhysicsBody rectangleOfSize pipeUp size 在此编码中我使用了rectangleOfSize对于碰撞物理体 但如果我想按像素仅使用图像的形状 我应该使用什么而不是
  • iPhone Developer' 与任何有效的、未过期的证书/私钥对不匹配 - 但我正在创建 iPad 应用程序 [重复]

    这个问题在这里已经有答案了 可能的重复 代码签名错误 身份 iPhone Developer 与默认钥匙串中的任何有效证书 私钥对不匹配 https stackoverflow com questions 2108503 code sign
  • 重置转换后的 UIView 的原点会变得疯狂

    我使用 UIView transform 旋转 缩放 UIVIew 效果很好 然而 一旦我更改视图的框架原点 即使我没有执行任何进一步的 CGAffineTransforms 视图的内容也会开始 奇怪 地缩放 为什么会出现这种情况 我该如何
  • 对于某些纹理尺寸,glFramebufferTexture2D 在 iPhone 上失败

    当我尝试将纹理附加到帧缓冲区时 glCheckFramebufferStatus 报告某些纹理大小的 GL FRAMEBUFFER UNSUPPORTED 我已经在第二代和第四代 iPod Touch 上进行了测试 两个模型之间失败的纹理尺
  • Xcode 9 中的“addingPercentEncoding”是否损坏?

    在 Swift 3 x 和 Xcode 9 beta 2 中 使用addingPercentEncoding https developer apple com documentation swift string 1690785 addi
  • 自定义 MKAnnotationView - 如何捕获触摸而不忽略标注?

    我有一个自定义 MKAnnotationView 子类 它完全按照我想要的方式显示视图 在那个视图中 我有一个按钮 我想捕获按钮上的事件来执行操作 这很好用 但是 我不希望标注被忽略或消失 基本上 触摸标注中的按钮将开始播放声音 但我想保留
  • 应用程序未通过协同设计验证?

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

    我需要帮助 当我的 tableView 的单元格被选择时 我希望该单元格转到它自己的页面 我不希望每个单元格都转到同一页面 我尝试使用 FirstFolderViewController first FirstFolderViewContr
  • 将 iPhone 上的 stderr 写入文件和控制台

    我正在遵循答案中的建议here https stackoverflow com questions 5179108 iphone how to read application logs from device用于将 iOS 设备上的 NS
  • 我应该在哪个方法中设置 UITextField 的委托?

    在 viewDidLoad 或 init 方法中设置 UITextField 的委托是一个好习惯吗 我尝试在 init 方法中将委托设置为 self 但它没有调用相应的委托方法 当我将代码移动到 viewDidLoad 中时 它注册为将 s
  • 在 iOS 上从 GPS 获取时间

    我正在开发一个跟踪器应用程序 该应用程序需要高精度地了解设备位置 即它使用位置服务并忽略水平精度低于 20 米的位置 CLLocation没有明确声明是否通过 GPS 确定 但是 如果水平精度为 20 米或更好 则可以认为它是来自 GPS
  • 为什么这个 SKPhysicsJointPin 不能将这 2 个精灵保持在一起?

    我显然不太了解 SKPhysicsJoint 但是除了 Apple 文档之外 网上的信息还很少 下面的代码有什么问题 我认为应该保持头部和颈部永久连接 我的意图是它们就像两张带有大头针的纸 这样它们可以旋转一点 但不仅仅是完全分开 当我运行

随机推荐

  • 如何使用 Ruby Savon 编写 SOAP 身份验证标头

    我是第一次调用基于 SOAP 的 API 我从文档中获得了以下信息 在您的客户端中 按如下方式构建授权标头 1 连接用户名和密码 例如 示例用户名 示例密码 2 以 64 为基数对字符串进行编码 例如 RXhhbXBsZVVzZXJOYW1
  • 是否可以避免对话框函数中的静态或全局变量

    如果在对话框函数中需要某种状态 那么似乎您需要某种静态变量 例如 GetOpenFileName 的钩子过程在其 WM INITDIALOG 调用上向对话框函数提供 OPENFILENAME 结构的地址 但不在任何后续调用上 并且 OPEN
  • MapView、MapFrament 和 SupportMapFragment 之间的区别

    我会知道其中的差异 因为我正在开发一个应用程序 并且我会引入 Google Map API v2 来编译 Android 2 3 以上版本 我应该使用哪个 MapView 显示一个视图map 使用从 Google 地图服务获得的数据 当聚焦
  • 如何使用 React 在点击时动态添加和删除类?

    我有一个链接列表 我在点击时添加一个类 称为 is active 同时 我想删除除我单击的链接之外的所有现有 is active 可能只有一个元素具有 is active 类 因为该元素将 活动 页面 使用布尔玛CSS 这是我迄今为止尝试过
  • Altair 默认调色板颜色(十六进制)

    如何找到 Altair 默认调色板的十六进制表示形式 每个绘图工具都有其优点和缺点 我通常最终生成由 Seaborn Altair 组成的可视化效果 我想在 Seaborn 中匹配 Altair 颜色 对于 Seaborn 您可以获取 co
  • Flutter:FloatingActionButton 阴影

    您是否能够或者有什么方法可以改变由FloatingActionButton extended或任何其他浮动按钮 你可以尝试这样的方法 floatingActionButton FloatingActionButton onPressed b
  • 通过 XAML 中的滚动检测 WebView 高度

    我真的需要能够计算出给定的 HTML 片段有多高WebView 这对于我正在尝试构建的项目非常重要 我知道这不可能立即实现 但我可以确定 WebView 上是否存在滚动条 我也许可以增加视图的高度 直到它消失 对此有什么想法吗 或者有任何替
  • 从启动进程获取窗口句柄

    我看到有win32process GetWindowThreadProcess 它获取一个窗口处理程序并返回它的进程 ID 有没有办法做相反的事情 通过进程 ID 获取正在运行的进程的窗口处理程序 就像是win32gui GetWindow
  • 如何在 Angular 2 中获得全彩色的垫卡标题背景?

    我在 Angular 2 中制作了一个联系表 我会制作一个彩色顶栏
  • 找出构建 Binary 的 Go 版本?

    有没有办法知道二进制文件是用哪个版本构建的 我的工作站上有多个 go 实例 因此我想验证是否使用了正确的实例 以下命令应该可以做到这一点 strings binary path grep go1 go1 5 3
  • 并行性如何使用matlab求解ODE参数扫描

    只是想问一些有关我的代码的问题 从互联网上获取了此代码 这可能与 mathworks 网站中的示例相同 我在 MATLAB 中模拟此代码并得到了结果 我可以看到解决该问题所需的时间更少使用并行计算 具有 2 个工作线程的 matlabpoo
  • 在模板中同时迭代两个字典

    我试图在模板中同时打印两个字典的值 例如 td key td td value from dict1 td td value from dict2 td 两个字典包含相同的键但不同的值 有什么办法可以实现这一点吗 您可以使用自定义过滤器来完
  • 谷歌地图图像?

    有什么办法可以捕捉谷歌地图的图像吗 我无法使用静态地图 因为我在地图中有自己的折线 并且我希望它们出现在 屏幕截图 中 基本上 我希望用户导航地图 添加一些折线 当他单击 保存 时 我将保存线条 坐标 缩放 但我还希望有一个图像在列表中以缩
  • 删除 Service Fabric 应用程序后进程仍继续运行

    当我删除服务结构应用程序时 我已经看到了这一点 应用程序内服务的旧进程仍然继续运行 应用程序中包含的服务有以下类型 Actors 无状态服务 ASP NET 核心 当我重新部署应用程序时 我注意到了这个问题 并且 ASP NET Core
  • 如何使用 VSTS 2008 Database Edition GDR 版本编辑数据库对象的默认模板

    我正在尝试使用 Visual Studio Team System 2008 数据库版 GDR 版本 来完成我正在开发的一个新项目 并且遇到了一个有点烦人的问题 我希望有人知道如何解决该问题 简而言之 我想更改用于生成数据库对象 特别是存储
  • 使用 FireDac (Delphi) 在 Firebird 中创建数据库

    我最近从 AnyDac 更改为 FireDac 8 0 5 3365 我们正在运行 Delphi 2006 当我使用该组件的 AnyDac 版本时 我可以通过执行以下操作来创建一个新数据库 设置我的连接 fConnection LoginP
  • 在 C# 应用程序中管理多个 Windows 窗体

    关于管理具有多种形式的应用程序的好方法的任何想法 建议 模式 第一个页面是登录 加载 主表单 用户可以从那里启动许多其他 子表单 可能会随着时间的推移而增长 用户应该能够随时取消整个应用程序 我知道我现在做事的方式并不总是优雅的 Cody
  • 使用 git/github 对 R 包进行版本控制?

    我在确定更新 github 上 R 包版本号的工作流程时遇到问题 以避免错误命名 中间 版本 这就是我现在所做的 提交并推送 例如版本 1 0 0 并将发行版设置为 1 0 0 提交并推送一些错误修复等 而不更改描述文件 最终决定我应该将版
  • git pull 实际上并没有从远程恢复我丢失的文件

    我一直在一个分支机构工作 我提交并将其推送到远程存储库 现在该分支上的一些文件丢失了 希望它们在远程分支上仍然可用 所以我尝试这样做git pull git pull origin feature my branch 然而 git表示所有内
  • Objective C - 隐藏 iVar

    这是我的问题 假设我有一个名为 WebServiceBase h 的类 我需要在该类中添加一个名为 NSString requestData 的 iVar 但我不需要将该 iVar 添加到头文件中并使其对外部人员可见 如果我将其作为类库分发