如何打造私有财产?

2023-11-27

我试图在我的土地上建立一个私有财产*.m file:

@interface MyClass (Private)
@property (nonatomic, retain) NSMutableArray *stuff;
@end

@implementation MyClass
@synthesize stuff; // not ok

编译器声称没有声明任何东西属性。但有一个东西。只是在匿名类别中。让我猜猜:不可能。其他解决方案?


您想使用“类扩展”而不是类别:

@interface MyClass ()
@property (nonatomic, retain) NSMutableArray *stuff;
@end

@implementation MyClass
@synthesize stuff; // ok

Objective-C 2.0 中创建的类扩展部分是专门为此目的而创建的。类扩展的优点是编译器将它们视为原始类定义的一部分,因此可以警告不完整的实现。

除了纯粹的私有属性之外,您还可以创建内部可读写的只读公共属性。可以在类扩展中重新声明属性,仅用于更改访问权限(只读与读写),但声明中的属性必须相同。因此你可以这样做:

//MyClass.h
@interface MyClass : NSObject
{ }
@property (nonatomic,retain,redonly) NSArray *myProperty;
@end

//MyClass.m
@interface MyClass ()
@property (nonatomic, retain, readwrite) NSArray *myProperty;
@end

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

如何打造私有财产? 的相关文章

  • 该捆绑包无效。 Info.plist 文件缺少所需的密钥:CFBundleVersion

    使用 Xcode 7 0 1 和 Xcode 7 1 提交构建时 即使是在苹果一天前接受的存档上 我仍然遇到错误 ERROR ITMS 90056 This bundle is invalid The Info plist file is
  • 如何从整数生成 unicode 字符?

    我想创建一个 Unicode 字符数组 但我不知道如何将整数转换为 Unicode 表示形式 这是我到目前为止的代码 NSMutableArray uniArray NSMutableArray alloc initWithCapacity
  • 使用 Java 创建 plist

    有没有一种简单的方法可以用Java创建plist 结果应该与 Objective C 中序列化字典相同 The PList http code google com p xmlwise source browse trunk src mai
  • iPhone崩溃日志:未能及时恢复

    我正在查看崩溃日志并注意到 未能及时恢复 Application Specific Information com myApp MyApp failed to resume in time elapsed total CPU time se
  • Objective C iPhone 何时将对象引用设置为 nil

    我使用 Objective C 和 Cocoa 框架进行开发已经有一段时间了 然而 我仍然不太清楚 我什么时候应该将对象引用设置为 nil 我知道建议在释放具有委托的对象之前执行此操作 并且您还应该在保留子视图的 viewDidUnload
  • NSDate 输出不正确[重复]

    这个问题在这里已经有答案了 可能的重复 获取日期与 NSDate date 相差几个小时 https stackoverflow com questions 8466744 getting date from nsdate date off
  • 强/弱/保留/__unsafe_unretained/分配

    合成属性的属性 保留 分配 保留 它被保留 旧值被释放并被分配 分配 仅分配 所有权财产 iOS5 强 弱 IOS4 保留 unsafe unretained 强 iOS4 保留 我是所有者 你不能释放它 在瞄准之前 保留 弱 iOS 4
  • Python 中的“私有”属性

    我对 Python 比较陌生 所以我希望我没有错过一些东西 但是这里 我正在尝试编写一个Python模块 并且我想创建一个具有 私有 属性的类 该属性只能 或者可能 应该 只能通过模块内的一个或多个函数进行修改 这是为了使模块更加健壮 因为
  • 如何隐藏标签栏并在屏幕上显示完整的表格视图?

    在我的应用程序的实现中 我有一个带有 5 个不同选项卡的选项卡栏控制器 通过以下代码隐藏标签栏后 void hideTabBar for UIView view in self tabController view subviews if
  • 获取 iOS 5 中最后一个重定向的 url?

    有人可以发布最简单的工作代码 当我 GET 请求一个 url 时 它可以获取最后一个重定向的 url nth 吗 我知道我需要使用异步请求 但我无法制定出解决问题的完整工作代码 我正在使用 ios5 因此我可以使用 ios5 中最新添加的异
  • iOS 应用程序和.NET 应用程序之间的通信?

    我有 2 个应用程序 一个是 iOS 应用程序 一个是 NET 应用程序 我希望我的 iOS 应用程序发送一条消息 调用 NET 应用程序的方法 将一些字符串发送到 NET 应用程序以保存到数据库 那么 我的 iOS 应用程序如何与 NET
  • 如何在 UICollectionView PerformBatchUpdates 块中排序移动、插入、删除和更新?

    In my UICollectionView 我使用一个简单的自定义对象数组来生成和显示单元格 有时数据会发生变化 我想一次性为所有变化添加动画效果 我选择通过跟踪第二个数组中的所有更改 比较两个数组并在一个数组内生成一组移动 插入 删除和
  • iOS 应用程序中的谷歌地图实时交通状况?

    如何使用 google 地图 sdk 或 api 在 ios 应用程序中添加当前交通状况 如下图所示 有 javascript api 但我没有找到任何适用于 iOS 应用程序的解决方案 只需在 iOS SDK 中添加一行代码即可启用或禁用
  • 由于无法确认开发者身份而无法打开

    我在 Mac OSX 中开发了一个应用程序和守护进程 并且我已经在 xcode 中与开发者 ID 签署了应用程序和守护进程源代码 在守护进程中 我已经对每个框架进行了签名并打包 并且我使用软件包安装程序对所有框架进行了 pkg 现在我的应用
  • 如何在文本末尾添加按钮,如 Facebook 的“继续阅读”?

    当状态帖子太长时 Facebook 应用程序会剪切文本并在末尾添加 继续阅读 它如何知道在哪里剪切文本并添加 继续阅读 不仅仅是向 textView 或标签添加按钮 而是如何剪切字符串 例如 在下图中 我将行数限制为 7 我可以在 text
  • 解析后 UITableView 委托和数据源在单独的类中

    我需要从一个单独的类设置 UITableView 委托和数据源 方法调用解析后数据准备就绪 但每次我的表都是空的 我正在使用 ARC 这是简化的代码 HomeViewController h import
  • 从 xib 中提取 UI 项目?

    经过一番浏览文档后 我决定使用以下技术 使用 viewWithTag 从 loadNibNamed owner options 返回的主根视图中提取子视图 首先 我有点困惑 因为我假设 loadNibNamed owner options
  • 当点击 UITableViewCell 的子视图时引发选择事件 (didSelectRowAtIndexPath)

    我创建了一个自定义 UITableViewCell 其中包含许多子视图 在大多数情况下 我希望 UITableViewCell 的控制器来处理事件 在一种情况下 我希望子视图简单地将事件传递给父 UITableViewCell 这将导致它在
  • 从 NSString 的第一行删除换行符

    我怎样才能删除第一个 nNSString 中的字符 编辑 只是为了澄清一下 我想做的是 如果字符串的第一行包含 n 字符 请将其删除 否则不执行任何操作 即 如果字符串是这样的 nhello this is the first line n
  • Objective-C 声明的 @property 属性(非原子、复制、强、弱)

    有人可以向我详细解释一下我何时必须使用每个属性 nonatomic copy strong weak等等 对于声明的属性 并解释每个属性的作用是什么 某种例子也很好 我正在使用ARC 非原子的 Nonatomic https stackov

随机推荐