微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ios – Swift:Class不能被声明为public,因为它的Super类是内部的

我试图将该类声明为公共类,如下所示

class RewardsAndRedemptionModel:BaSEObject {
var rewardHistory :[RewardHistoryModel]!
}

这是我试图让班级公开的地方,但我不能.

public class RewardHistoryModel :BaSEObject  {
 var rewardValue : String!
 var recordedByName : String!
 var rewardFor : String!
}

即使我阅读互联网上提供的文件,我也无法得到它,请帮助我.

解决方法

编译器告诉您不能将其公开,因为超类是内部的.你知道,编译器不会撒谎.

没有子类比其超类更易于访问.为什么?以这种方式思考,子类具有其超类具有的所有属性和成员.如果此限制不存在,则访问修饰符将不再有用.你有一个内部课程.其他人将您的内部类子类化并将其声明为公共类.现在封装被打破了.现在可以通过子类访问您不想访问的内容.

换句话说,如果子类比其超类更易于访问,则超类的访问修饰符会失效.这就是为什么编译器有这个限制的原因:提醒你,你写的东西可以使超类的访问修饰符失效.你可能做错了.

解决此问题,请将BaseClass及其超类声明为public.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐