ios - Objective C 中类型的 Typedef NSArray

标签 ios objective-c swift

自从我使用 Objective C 以来已经有很长一段时间了,但现在我正在使用它,因为我需要编写一些与 future 版本保持大部分源代码兼容的东西。我想创建一个 init 方法,允许我使用我的自定义模型对象的数组来初始化我的 viewController。在 Swift 中,我会这样做:

typealias Stack = [StackBarTabItem]
…
func init(stacks:[Stack])

但是我如何像这样输入定义一个 NSArray 呢?我很确定我不能做类似 typedef NSArray<StackBarTabItem> Stack; 的事情那么 objective-c 中的语法是什么?

最佳答案

直到 iOS 9 和 Xcode 7,这才得到官方支持。一种方法是将 NSArrayNSMutableArray 子类化,并在子类中强制键入,但实际上并不推荐这样做。处理 NSArray 只能保存 id 这一事实的一种方法是在对数组。

此解决方案并不能真正替代良好的打字系统,但绕过此限制是一种常见的做法。值得庆幸的是,很快就会添加通用支持!

关于ios - Objective C 中类型的 Typedef NSArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31612566/

相关文章:

ios - 设置 UITextField 的光标位置不起作用(快速)

swift - 如何在 Swift 的 collectionView 方法之外访问单元格的值?

iphone - 我应该在 iPhone 程序中的什么地方放置文本、说明、描述等?

ios - stopMonitoringForRegion 是仅停止重复区域还是也停止原始区域?

objective-c - 当 Apple 文档提到包含 ARC 属性的正确位置时,它是什么意思?

objective-c - 使用 Objective-C 读取 .mobileprovisioning 配置文件

swift - SKPhysicBodies 似乎有点不合适

ios - UITableView contentOffset 行为异常

ios - 奇怪的parent/child NSManagedObjectContext现象

ios - Xcode5 iOS7 - UIPopoverController 角半径