Swift open public等修饰符详解

2023-11-15

swift 中关于open ,public ,internal,fileprivate,private 修饰的说明

open:

用open修饰的类可以在本某块(sdk),或者其他引入本模块的(sdk,module)继承,如果是修饰属性的话可以被此模块或引入了此某块(sdk)的模块(sdk)所重写

public:

类用public(或级别更加等级更低的约束(如private等))修饰后只能在本模块(sdk)中被继承,如果public是修饰属性的话也是只能够被这个module(sdk)中的子类重写

internal

是在模块内部可以访问,在模块外部不可以访问,a belong A , B import A, A 可以访问 a, B 不可以访问a.比如你写了一个sdk。那么这个sdk中有些东西你是不希望外界去访问他,这时候你就需要internal这个关键字(我在导入第三方框架时发现其实没有定义的话sdk里面是默认internal的)

fileprivate

这个修饰跟名字的含义很像,file private 就是文件之间是private的关系,也就是在同一个source文件中还是可以访问的,但是在其他文件中就不可以访问了 a belong to file A, a not belong to file B , 在 file A 中 可以访问 a,在 file B不可以访问a

private

这个修饰约束性比fileprivate的约束性更大,private 作用于某个类,也就是说,对于 class A ,如果属性a是private的,那么除了A外其他地方都不能访问了(fileprivate 和private都是一种对某个类的限制性约束。fileprivate的适用场景可以是某个文件下的extension,如果你的类中的变量定义成了private那么这个变量在你这个类在这个类的文件的拓展中就无法访问了,这时就需要定义为fileprivate)

最后是 Guiding Principle of Access Levels (访问级别的推导原则):不能在低级别的修饰中定义比自身更高的级别修饰,如public不能修饰在private类中的属性

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Swift open public等修饰符详解 的相关文章

  • iOS第三方支付集成-微信支付

    序言 说来惭愧 终于有支付的需求给我做了 哇嘎嘎 开动 文章尽量写的详细点 从自身出发 希望能给大家一点帮助 欢迎大佬指正 支付流程 步骤1 用户在商户APP中选择商品 提交订单 选择微信支付 步骤2 商户后台收到用户支付单 调用微信支付统
  • AppIconTemplate基本使用教程,快速生成iOS app icon图标

    下面的文章写的挺详细的 我就不过多阐述了 转载 http www zcool com cn article ZNjE1MTI html
  • 深入解析 ObjC 中方法的结构

    因为 ObjC 的 runtime 只能在 Mac OS 下才能编译 所以文章中的代码都是在 Mac OS 也就是 x86 64 架构下运行的 对于在 arm64 中运行的代码会特别说明 在上一篇分析 isa 的文章从 NSObject 的
  • iOS app签名机制

    前言 在移动开发中 iOS系统下的app和andorid系统下的app一个很大的区别是 android系统下 app的安装很方便 可以从多个应用商店下载 小米应用商店 华为应用商店 也可以直接下载apk的包安装 而在iOS系统下 对app的
  • OC使用cocoapods导入swift库注意

    首先就是在 targets gt Build Setting gt Packaging 中设置 Defines Module为YES 然后创建swift文件时会生成 文件名 Bridging Header h 这样一个桥接文件 怎样使用co
  • ios中模拟手势单击或是双击

    1 拓展UITouch类和UIEvent类 通过category 具体见附件TouchSynthesis h和TouchSynthesis m 2 在需要的类中 定义UITouch和UIEvent类的对象 UITouch touch UIT
  • iOS应用添加第三方支付

    最简单明了的教程还是官方文档 以下是我给应用添加支付功能 记录下 1 微信支付 官方文档 https pay weixin qq com wiki doc api app php chapter 8 5 假设你的应用在微信开放平台已经创建
  • iOS开发环境xcode搭建

    1 到 https developer apple com download 或者在APP store下载 2 下载完成后会在launchpad显示 点击安装
  • 两个app应用之间的跳转

    一 应用跳转的原理 从一个应用跳转到另一个应用 作为APP开发者 最熟悉的莫过于第三方登录 支付宝 微信支付时 那时候我们可能仅仅按照集成文档一步一步操作 在文档中配置很多类似URL Schemes 如下图 一般的配置 下面我们进入正题的为
  • 如何解决Reachability中的Declaration of 'struct sockaddr_in' will not be visible outside of this function

    相信大家在判断网络状况的时候 都会用到 Reachability 但是在iOS5发布以后 将其导入项目中就会出现下面一个警告 Declaration of struct sockaddr in will not be visible out
  • ios-常见的命令行工具

    pwd 查看当前目录 cat 在命令行中查看文件 ls 查看文件 ls l 就是以列表的形式展开 touch 创建文件 open 打开文件 more 分页查看文件内容 f是下一页 b是上一页 当你命令行有很多东西你写错了的时候不想去一一删除
  • 适配IPv6遇到的坑,终极解决方案

    6 1AppStore发布之后的应用要兼容IPv6 然而我上个星期发布的版本并没有因为没兼容而被拒 这次提交却遇到IPv6兼容问题 话不多说 上代码 NSString getIPWithHostName const NSString hos
  • Xcode8不能在iOS7上调试,Could not find Developer Disk Image的解决方法

    升级完Xcode8之后 默认情况下 是无法进行iOS7的调试的 因为Xcode8里面不再游iOS7的镜像文件 所以会提示 Could not find Developer Disk Image 解决方法如下 打开finder 应用程序 Xc
  • iOS图标(AppIcon)与启动图(LaunchImage)

    图标 AppIcon 与启动图 LaunchImage 是开发iOS应用程序必不可少的内容 但是在网络上对于这部分的内容讲解的并不详细 所以花些时间写了这篇文章 希望有需要的朋友可以随时查看 想知道AppIcon与LaunchImage的原
  • json文件解析出现异常

    今天在尝试用自带的NSJSONSerialization方法来解析本地json文件的时候碰到了系统异常 app自动终止 问题如下 代码
  • iOS App上架流程

    前言 作为一名IOS开发者 把开发出来的App上传到App Store是必须的 下面就来详细介绍下具体流程 1 打开苹果开发者中心 https developer apple com 打开后点击 Member Center 如果你的电脑没有
  • 在Xcode中使用Git进行源码版本控制

    本文翻译自Understanding Git Source Control in Xcode 译者myShire 欢迎您加入我们的翻译小组 在应用程序开发过程中 很重要的一部分工作就是如何进行源码的版本控制 当代码出现问题时 我们就需要将代
  • iOS开发中的网络请求

    转载自http www cocoachina com ios 20140919 9691 html 今天来说说关于iOS开发过程中的网络请求 关于网络请求的重要性我想不用多说了吧 对于移动客户端来说 网络的重要性不言而喻 常见的网络请求有同
  • iOS开发之内存管理

    iOS开发之内存管理 一 垃圾回收机制 二 内存管理的概念 三 OC内存管理注意事项 四 MRC相关语法 一 垃圾回收机制 与Java语言相同Objective c 2 0之后 也提供了垃圾回收机制 OC是支持垃圾回收机制的 Garbage
  • 如何获取iPhone手机的UUID

    方法一 通过Windows下的iTunes 1 数据线连接iPhone手机 在Windows下打开iTunes 在 iPhone 管理界面下zhi点击 序列号 查看自己的 UUID 标识符 2 此dao时点击菜单 编辑 gt 复制 3 新建

随机推荐

  • 怎样创建字符串数组

    使用char 数组或string数组 string month Number January February March April May Jun July August September October November Decem
  • useContext详细说明与使用

    一 什么是useContext 在Hooks之前 react开发者都是使用class组件进行开发 父子组件之间通过props传值 但是现在开始使用方法组件开发 没有constructor构造函数 也就没有了props的接收 所以父子组件的传
  • 关于B站的R语言数据分析报告

    一 研究背景及问题提出 2023年1月初 B站在港交所公布的业绩报告显示 从2022年第二季度开始 公司合计统计移动应用和PC端的活跃用户 截至2022年9月30日 公司平均月活跃用户为3 33亿人 环比增加2690万人 创下历史新高 同期
  • DevExpress 本地资源文件的下载和使用

    目的 汉化软件运行时一些控件的文本显示效果 注意无法达到设计时汉化的需求 这个还是需要开发者熟悉英文 1 从官网或者广大网友手里下载获得zh Hans的汉化资源文件包 各个版本都有各自的汉化文件 2 在bin路径下创建文件夹zh Hans
  • 转 C++编程笔记:使用WinHTTP实现HTTP访问(解决接收UTF8数据乱码问题)

    实现HTTP访问的流程包括以下几步 1 首先我们打开一个Session获得一个HINTERNET session句柄 2 然后我们使用这个session句柄与服务器连接得到一个HINTERNET connect句柄 3 然后我们使用这个co
  • 第8章 生成式深度学习

    生成模型根据一些规则y 来生成新样本x 本章主要介绍常用的两种 变分自动编码器 VAE 和 生成式对抗网络 GAN 及其变种 GAN是基于博弈论 目的是找到达到纳什均衡的判别器网络和生成器网络 而VAE基本根植贝叶斯推理 其目标是潜在地建模
  • 直流有刷电机驱动设计与分析

    直流有刷电机的驱动是实现电机正转和反转的关键 而H桥电路是常用的驱动电路之一 本文将介绍H桥电路的原理 设计和分析 并介绍一种常用的驱动芯片L298N H桥电路是由4个三极管和一个电机组成 通过导通对角线上的一对三极管 可以控制电机的正转和
  • yum仓库服务

    yum仓库服务 一 YUM仓库的相关概述及部署 YUM仓库 通过YUM仓库完成rpm软件包的安装 升级 卸载等任务 能够自动查找并解决rpm 包之间 的依赖性关系 适用环境 拥有大量的Linux主机的本地网络中 可构建一台YUM源服务器来缓
  • 服务器怎么增加独立显卡,dell服务器设置独立显卡(dell服务器加显卡)

    网页上说的方法 比如什么选什么电源属性 我都试过了 但是性能没感觉提高啊 尊敬的用户您好 以下方法供您参考 bios里可将显卡显示改成可切换显卡 方法如下 进人bios设置界面 选择 config 项目 切换到 display 设置页 找到
  • XSS闯关小游戏通关笔记

    level1 无过滤 分析源码 没有任何的过滤 直接在链接中构造最基本的XSS弹窗即可 弹窗内容为1 level2 input中未设置过滤 分析源码 发现在echo输出中有一个函数htmlspecialchars htmlspecialch
  • 【步进电机】简单介绍

    步进电动机是一种将电脉冲转化为角位移的执行机构 当步进驱动器接收到一个脉冲信号 它就驱动步进电机按设定的方向转动一个固定的角度 这个角度叫做歩距角 我们可以通过控制脉冲的个数来控制电机的角位移量 从而达到精确定位的目的 同时还可以通过控制脉
  • 使用Qt Designer来设计界面

    介绍 Qt Designer 是一个直观可见的全方位 GUI 构造器 它所 设计出来的用户界面能够在多种平台上使用 它是 Qt SDK 的一部分 也是最为重要的开发 工具之一 利用 Qt Designer 我们可以拖放各种 Qt 控件构造图
  • 一份react-native面试题

    1 下面打印出b的值是 if true let b 2 alert b let不存在变量提升 且作用域只在代码块 输出undefined 2 const name jack const age 20 const person name tr
  • 处理流程设计-系统设计-人机界面设计

    处理流程设计 系统设计 人机界面设计 流程表示工具 重点 业务流程重组 业务流程管理 系统设计 内聚程度排行 耦合程度排行 人机界面设计的三大原则 流程表示工具 重点 数据流图也是一种 IPO 图 NS图和PAD图 业务流程重组 需要记忆
  • 无人机系列之发展史

    一 引言 何谓无人机 其实就是无人驾驶飞机的简称 应为缩写为 UAV 是一种无线遥控的无人驾驶飞机 2016年无人机作为消费电子类的重点戏迅速点燃了整个消费市场 一时间家喻户晓 在引起消费者狂热追捧的同时 国内外的厂商也前赴后继地杀入无人机
  • x58添加uefi_修改为UEFI引导的方法,不需要重装

    本文旨在分享一下我在不重装系统的情况下 怎样将系统引导方式改为UEFI GTP 看过我以前发过的文章可能还记得 我是如何辛苦的把锐龙处理器加B350M主板安装成win7系统 新电脑装win7 锐龙 M 2硬盘一个也不能少 然而微软于2020
  • 通达信板块监控指标_打板资金监控利器 通达信副图指标

    打板资金监控 可叠加到股池中或者选股条件中 无未来放心
  • Minikube安装以及一些踩坑的解决

    安装k8s和docker 我的测试系统是centos7 8的国内服务器 参考文档 https developer aliyun com article 221687 首先先安装k8s 1 19 2版本 1 19 x 版本的安装 腾讯云 do
  • vue.config.js详解

    vue config js 是一个可选的配置文件 如果项目的 和 package json 同级的 根目录中存在这个文件 那么它会被 vue cli service 自动加载 配置项详情见 配置参考 Vue CLI use strict i
  • Swift open public等修饰符详解

    swift 中关于open public internal fileprivate private 修饰的说明 open 用open修饰的类可以在本某块 sdk 或者其他引入本模块的 sdk module 继承 如果是修饰属性的话可以被此模