加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-14 17:44:22 所属栏目:百科 来源:网络整理
导读:我试图将该类声明为公共类,如下所示 class RewardsAndRedemptionModel:BaSEObject {var rewardHistory :[RewardHistoryModel]!} 这是我试图让班级公开的地方,但我不能. public class RewardHistoryModel :BaSEObject { var rewardValue : String! var record
我试图将该类声明为公共类,如下所示

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

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

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

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

解决方法

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

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读