Sam*_*Sam 4 xcode access-specifier ios swift swift3
我试图将该类声明为公共类,如下所示
class RewardsAndRedemptionModel:BaseObject {
var rewardHistory :[RewardHistoryModel]!
}
Run Code Online (Sandbox Code Playgroud)
这是我试图让班级公开的地方,但我不能.
public class RewardHistoryModel :BaseObject {
var rewardValue : String!
var recordedByName : String!
var rewardFor : String!
}
Run Code Online (Sandbox Code Playgroud)
即使我阅读互联网上提供的文件,我也无法得到它,请帮助我.
编译器告诉您不能将其公开,因为超类是内部的.你知道,编译器不会撒谎.
没有子类比其超类更易于访问.为什么?以这种方式思考,子类具有其超类具有的所有属性和成员.如果此限制不存在,则访问修饰符将不再有用.你有一个内部课程.其他人将您的内部类子类化并将其声明为公共类.现在封装被打破了.现在可以通过子类访问您不想访问的内容.
换句话说,如果子类比其超类更易于访问,则超类的访问修饰符会失效.这就是编译器有这个限制的原因:提醒你,你写的东西可以使超类的访问修饰符失效.你可能做错了.
要解决此问题,请将BaseClass其超类声明为public.