objective-c – Objective C – 对NSArray进行子类化

objective-c – Objective C – 对NSArray进行子类化,第1张

概述我试图继承NSArray,但它在尝试访问count方法时崩溃了应用程序.我知道NSArray是一个类集群. >但这是什么意思? >有没有可以继承NSArray的工作? 我知道我可以简单地继承NSObject并将我的数组作为实例变量,但我宁愿继承NSArray. 编辑: 原因: 我正在创建一个纸牌游戏,我有一个类Deck,它应该将NSMutableArray子类化为一些额外的方法(-shuffle, 我试图继承NSArray,但它在尝试访问count方法时崩溃了应用程序.我知道NSArray是一个类集群.

>但这是什么意思?
>有没有可以继承NSArray的工作?

我知道我可以简单地继承NSObject并将我的数组作为实例变量,但我宁愿继承NSArray.

编辑:
原因:
我正在创建一个纸牌游戏,我有一个类Deck,它应该将NSMutableArray子类化为一些额外的方法(-shuffle,-removeObjects:,-renew等),我认为将子类NSArray看起来更干净而不是变种

解决方法 在类这样的类上添加类别的问题是该类的所有实例都将继承其他方法.这既不必要(因为不是每个阵列都需要能够被洗牌等)而且很危险(因为你不能从类型检查中受益,以确保你当前所指的NSArray确实是一个预计会被洗牌的人).

另一种方法是创建自己的Deck类,它具有NSMutableArray作为实例变量.在那里,您可以完全按照自己的意愿在甲板上定义 *** 作,并且您使用NSMutableArray的事实将成为实现细节.这使您可以在编译时利用类型检查,它允许您在不更改其客户端的情况下更改Deck类的内部实现.例如,如果您出于某种原因决定NSMutableDictionary将是更好的后备存储,那么您可以在Deck类的实现中进行所有这些更改,而无需更改任何创建和使用Deck的代码.

总结

以上是内存溢出为你收集整理的objective-c – Objective C – 对NSArray进行子类化全部内容,希望文章能够帮你解决objective-c – Objective C – 对NSArray进行子类化所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1016295.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存