Objective-C 属性是公开只读的,但有一个私有 setter

2024-04-17

我想使用@property语法来声明一个公开只读的合成属性,但有一个可以从类内私有调用的 setter。

由于它是 Objective-C,这基本上意味着setFoo:方法将被合成,但在类本身之外调用它会导致警告(无法识别的选择器)。要触发警告,我必须申报该财产readonly;有什么方法可以强制合成的设置器仅在类中可用?


我认为您正在寻找的称为类扩展。您可以在标头中声明该属性为只读:

@interface MyClass : NSObject {
}

@property (readonly, assign) NSInteger myInteger;

@end

然后在实现文件中的类扩展中重新声明:

@interface MyClass ()

@property (readwrite, assign) NSInteger myInteger;

@end


@implementation MyClass

@end

欲了解更多信息,请查看苹果的文档 http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/CustomizingExistingClasses/CustomizingExistingClasses.html#//apple_ref/doc/uid/TP40011210-CH6-SW3

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

Objective-C 属性是公开只读的,但有一个私有 setter 的相关文章

  • 如何解决 CoreData mogenerator 未找到问题

    我收到如下所示的错误 我不知道我错过了什么 我该如何解决这个问题 如下图所示 Users nischalhada Documents XcodePro mnepalnews revisited 2 0 CoreData mogenerato
  • iphone NSDate 转换问题

    在我的 facebook 图表 Api 中 我正在获取这些数据 来自杰森 updated time 2011 05 17T14 52 16 0000 我正在使用此代码将其转换为有效的日期格式 NSDateFormatter df NSDat
  • 频繁绘制 CGPath 时的性能

    我正在开发一个将数据可视化为折线图的 iOS 应用程序 该图被绘制为CGPath在全屏自定义中UIView最多包含 320 个数据点 数据经常更新 图表需要相应地重新绘制 刷新率为 10 秒就很好了 到目前为止很容易 然而 我的方法似乎需要
  • 拖动时获取MKAnnotation的坐标

    我正在根据用户添加的注释的位置创建一条路径 MKPolyline 我想允许用户通过拖动引脚来更改路径 我目前可以做到这一点 但 MKPolyline 不会更新 直到引脚被放下 我实施了 void mapView MKMapView mapV
  • iPhone 和加密库

    我想我必须在我的 iPhone 应用程序中使用加密库 我想问你有关苹果公司实施的加密货币出口政策的影响 我需要做一些额外的事情吗 例如填写表格等 1 如果我使用 MD5 进行哈希处理 2 如果我使用对称加密 Thanks EDIT 2009
  • Swift 闭包作为 AnyObject

    我尝试使用这个方法 class addMethod 在 Obj c 中使用如下 class addMethod self class selector eventHandler imp implementationWithBlock han
  • 两者都实现了类。将使用两者之一

    我有一个项目 它具有使用 SocketRocket 的依赖项 通过 CocoaPods 安装 并从 HeapAnalytics 导入了静态库 显然 HeapAnalytics 库已经使用了 SocketRocket 编译时没有出现错误 但在
  • 如何在 ios 7 上更改重新排序控制图像

    我正在寻找一种更改重新排序控件图像和大小的方法 我使用此代码来更改重新排序图像 void tableView UITableView tableView willDisplayCell UITableViewCell cell forRow
  • 如何在 UICollectionView 的节标题中动态添加标签和按钮?

    请帮助我如何水平添加标签和水平添加类似的按钮 但每个按钮应像另一个部分一样在每个标签的下方对齐 这应该在 UICollectionView 的标题中动态发生 因为标签和按钮的数量根据我的数据 我想制作一种 Excel 类型的布局 并在标题中
  • UICollectionView 未出现

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

    有没有正确的方法来确定是否NSView实际上是否在当前视图层次结构中绘制 考虑以下情况 视图完全在屏幕外 不是强制性的 该视图不在视图层次结构的顶部 The isHidden and isHiddenOrHasHiddenAncestor不
  • C# 在不创建实例的情况下获取属性值?

    是否可以在不创建实例的情况下获得价值 我有这门课 public class MyClass public string Name get return David public MyClass 现在我需要获取值 David 而不创建 MyC
  • 避免“在此块中强烈捕获自身可能会导致保留周期”消息

    每次我必须在块内使用全局变量或属性时 如下所示 self save if isItSaving NO self saveMyFile 我必须像这样重写 BOOL iis isItSaving id myself self self save
  • Objective C UIImagePNGRepresentation内存问题(使用ARC)

    我有一个基于 ARC 的应用程序 它从 Web 服务加载大约 2 000 个相当大 1 4MB 的 Base64 编码图像 它将 Base64 解码后的字符串转换为 png图像文件并将其保存到磁盘 这一切都是在一个循环中完成的 我不应该有任
  • 如何更改已上传的 Firebase 存储图像文件名?

    我需要更改已上传到 firebase 存储中的文件名 因为 在 firebase 存储中上传图像后 我将 url 保存在 firebase 数据库中的特定子 文件夹 下 但是 当我将图像移动到另一个子 文件夹 时 我需要根据新名称更改存储中
  • 我应该在哪个方法中设置 UITextField 的委托?

    在 viewDidLoad 或 init 方法中设置 UITextField 的委托是一个好习惯吗 我尝试在 init 方法中将委托设置为 self 但它没有调用相应的委托方法 当我将代码移动到 viewDidLoad 中时 它注册为将 s
  • 如何消除禁用的 UIButton 的灰色外观

    我有一个 UIButton 我希望它处于禁用状态时与处于正常状态时看起来完全相同 现在它看起来有点灰色 不要使用enabled属性或setEnabled NO方法 而是使用 myButton setUserInteractionEnable
  • 创建一个包含 UIViewController 的 UIViewController

    我有一个UIViewController这允许我在视图中显示一些文本 我想添加一个输入法而不将其直接添加到此视图控制器中 此输入法将是一个按钮或一个UITextField 这个输入法会很多 但是每次都会用一个 从设置中选择它 所以我不会有一
  • xcode 4 垃圾收集已删除?

    我正在学习 Xcode 和 Objective C 但是我正在阅读的书使用的是旧版本 3 2 的 Xcode 其中一章完全致力于内存和泄漏 说我需要通过 项目设置 gt 构建 打开垃圾收集 但是 我找不到垃圾收集设置 它已被删除还是我只是错
  • 如何按字母顺序对 NSMutable 数组中的自定义对象字段进行排序?

    我有一个自定义对象 例如 import

随机推荐

  • DropzoneJS 上传后隐藏了 dropzone 区域,如何恢复?

    我在用着angular2 dropzone wrapper我几乎按照我的需要工作了 我有这样的配置 this dropZoneConfig server this url maxFilesize 50 acceptedFiles xml p
  • 红宝石来整理单词[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在尝试编写一个 ruby 脚本来解读排列的单词 生成所有排列 并在 txt 目录中搜索该单词 我遇到了问题 这是我所拥有的简单概述 pr
  • 如何在 GEOS 中制作矩形? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 如何使用 GEOS 库的 C API 制作矩形 以下实现完成了工作GEOS http trac osg
  • 来自 WEBVTT 的 RDF/JSON Javascript 解析器

    晚上好 开门见山 我需要一个脚本来从 WEBVTT 文件中的特定时间间隔获取 RDF JSON 结构 这样的事情存在吗 RDF JSON 是 Talis 指定的文件结构 如下所示 S P O WEBVTT 实现上述结构如下 0 00 00
  • 将有状态 LSTM 称为功能模型?

    我有一个状态 LSTM 定义为顺序模型 model Sequential model add LSTM stateful True 后来 我将其用作功能模型 input 1 input 2 Input Input output 1 mode
  • 使用 ruby​​-install/ruby-build 在 Archlinux 上安装 Ruby 2.1.x 和 2.3.x 时出现 OpenSSL 错误

    我在 Archlinux 上使用 ruby install 构建旧版本的 Ruby 时遇到了一些问题 我怀疑 ruby build 也会发生同样的情况 尝试安装 Ruby 2 1 5 2 1 6 2 3 0 2 3 1 2 3 4 后 我看
  • ArgumentError:写入密钥必须初始化 Rails

    您好 我是 Rails 新手 我使用 nitrous io 作为我的 IDE 我刚刚使用 Rails 生成了一个模型generate model Micropost content text user references 当我跑步时bun
  • 如何删除 DataGrid 中焦点上的轮廓

    我试图删除当您关注 Material UI 的 DataGrid 组件中的单元格时出现的轮廓 这些方法都不起作用 const useStyles makeStyles theme gt Method 1 global MuiDataGrid
  • Java 中的字符串到 Clob?

    我在java中有一个字符串 但数据库中的数据类型是Clob 如何从 String 中获取 Clob clob setString position string 将 String 写入 Clob 对象 http download oracl
  • H2O 是否或将会提供任何与 h2o word2vec 一起使用的预训练向量?

    H2O 最近在其 API 中添加了 word2vec 能够在您自己提供的语料库上轻松训练自己的词向量真是太好了 然而 使用大数据和大型计算机存在更大的可能性 由于网络带宽和计算能力的限制 谷歌或 H2O ai 等软件供应商可能无法访问这种类
  • 如何使用数组在 FilterExpression 中使用“IN”语句 - dynamodb

    检查了AWS文档 但没有找到任何有效的示例 这是我的尝试 var params TableName User IndexName a b index KeyConditionExpression Country country and s
  • Chrome DevTool Timeline View中的渲染和绘画事件有什么区别

    我觉得render and paint只是两者都意味着渲染页面 显示 DOM 有什么区别 渲染事件是关于计算与每个 DOM 节点关联的样式 即 样式重新计算 和页面上的元素位置 布局 绘制类别是关于实际绘制像素的 包括 绘制 本身和 解码图
  • GET_SIGNATURES 已弃用

    我试图在我的 Android 应用程序中将内容分享到 Facebook 我需要一个密钥哈希 但我无法查看HashKey on my logcat因为GET SIGNATURES已弃用 有什么方法可以查看我的哈希键吗 这是代码 public
  • 并发可变优先级队列

    是否存在并发可变优先级队列 理想情况下 我正在寻找 C 实现 但是对于初学者来说 指向算法的指针会非常有帮助 需要明确的是 我正在寻找一个优先级队列 可以在其中调整元素的优先级 特别是TBBconcurrent priority queue
  • dplyr:将计数出现次数放入新变量中[重复]

    这个问题在这里已经有答案了 想要了解 dplyr 代码 但无法弄清楚这一点 已经看到这里描述的许多变量的类似问题 用 dplyr 总结一个因子的计数 https stackoverflow com questions 25811756 su
  • 在 Windows 系统上移动文件的最快方法 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我想要将大约 800GB 的数据从 NTFS 存储设备移动到 FAT32 设备 两者都是外部硬盘驱动器 在 Windows 系统上 实现这
  • 自定义元素 Web 组件 Shadow DOM 供应商脚本/元素

    当与自定义元素 https html spec whatwg org multipage custom elements html custom elements那个杠杆影子 DOM https dom spec whatwg org sh
  • 输入不是数字时输出错误。 C++

    我正在创建一个函数 它从用户的输入中获取一个数字并找到它的绝对值 如果用户输入数字以外的任何内容 我想让它返回错误 我该怎么做呢 我知道这对很多人来说可能是一个简单的问题 但我正在上第一堂 C 编程课 所以我知之甚少 任何帮助将不胜感激 如
  • 处理 TextBox 中的 ENTER 按钮,ASP.NET

    我在 ASP NET 中遇到以下问题 有一个表单 其中包含一个文本框和旁边的一个按钮 用户在填写该框后应该按下该按钮 示例http www burnthespam info http www burnthespam info 单击 选择您的
  • Objective-C 属性是公开只读的,但有一个私有 setter

    我想使用 property语法来声明一个公开只读的合成属性 但有一个可以从类内私有调用的 setter 由于它是 Objective C 这基本上意味着setFoo 方法将被合成 但在类本身之外调用它会导致警告 无法识别的选择器 要触发警告