在现有类和结构体的类型基础上,扩展新的功能。 语法:
- extension SomeType{
- // new functionality to add to SomeType goes here
- }
- An extension can extend an existing type to make itadopt one or more protocols.Where this is the case,
- the protocol names are written in exactly the sameway as for a class or structure:
- extension SomeType: SomeProtocol,AnotherProtocol {
- // implementation of protocol requirements goes here
- }
计算属性
- extension Double{
- var km: Double { return self * 1_000.0 }
- var m: Double { return self }
- var cm: Double { return self / 100.0}
- var mm: Double { return self /1_000.0 }
- var ft: Double { return self / 3.28084 }
- }
- let oneInch = 25.4.mm
- println("One inch is \(oneInch) meters")
- // prints "One inch is 0.0254 meters"
- let threeFeet =3.ft
- println("Three feet is \(threeFeet) meters")
- // prints "Three feet is0.914399970739201 meters"
- let aMarathon = 42.km + 195.m
- println("Amarathon is \(aMarathon) meters long")
使用构造器
- struct Size {
- varwidth = 0.0, height = 0.0
- }
- struct Point {
- var x = 0.0, y = 0.0
- }
- struct Rect {
- var origin = Point()
- var size= Size()
- }
- extension Rect{
- init(center: Point, size: Size) {
- let originX = center.x - (size.width / 2) let originY = center.y - (size.height/ 2) self.init(origin: Point(x: originX, y: originY),
- size: size)//调用 Rect 结构体构造器}
- }
- let centerRect = Rect(center: Point(x: 4.0, y: 4.0), size: Size(width: 3.0, height: 3.0))
方法扩展
- struct Size {
- varwidth = 0.0, height = 0.0
- }
- struct Point {
- var x = 0.0, y = 0.0
- }
- struct Rect {
- var origin = Point()
- var size= Size()
- }
- extension Rect{
- init(center: Point, size: Size) {
- let originX = center.x - (size.width / 2) let originY = center.y - (size.height/ 2) self.init(origin: Point(x: originX, y: originY),
- size: size)//调用 Rect 结构体构造器
- }
- }
- let centerRect = Rect(center: Point(x: 4.0, y: 4.0), size: Size(width: 3.0, height: 3.0))
Swift交流讨论论坛论坛:http://www.cocoagame.net
欢迎加入Swift技术交流群:362298485
相关推荐
主要介绍了Swift的一些基本的扩展功能,即extension关键字的使用,需要的朋友可以参考下
SwifterSwift:500 多个 Swift Extension 集合,提高你的生产率.zip,一个方便的500多个本地swift扩展集合,以提高您的生产力。
此扩展允许用户突出显示文本,右键单击并可以选择在Swift上呈现文本。 Swift是您的理想跑步机。 选择您的速度,Swift将以可消化的格式逐个呈现单词。 这是提高您的阅读效率的简单方法! 在以下位置检出该应用程序:...
swift工具类封装,记录一下,方便日后的开发,本封装在2016-2018年用过的,当时写的时候使用swift3.2 swift4.0 后来到现在的swift5.2发现里面某些语法不支持,今天有空修改了一下。现在是2021.4.11
使用Swift和App扩展API的自定义键盘。 从iOS 8开始,应用程序可以在用户使用其他应用程序时向其扩展自定义功能。 自定义键盘就是其中之一。 一旦您运行该应用程序,您的扩展程序将被加载到该设备上。 但是您需要...
ReverseExtension - UITableView扩展实现从表格底部插入单元格
Swift 中常用的扩展。比如说 UIView 的位置,十六进制的颜色值等。 ###UIView Inspired by . Thanks @freak4pc. 来自 UIView-Positioning 的启发。谢谢 @freak4pc。 You'd better disable Autolayout of the XIB ...
swift 2数组删除对象扩展 Swift 2数组扩展,可以删除对象 用法: import Foundation extension Array { mutating func removeObject(object: U) -> Element? { if count > 0 { for index in startIndex ..< ...
最近开发新项目, 需要搭一个框架, 在写常用Category时候, 发现之前写的比较乱,且不够完善, 这次特意总结了下,并且丰富了category库, 框架搭好了,有时间了专门写一篇文章来总结和分享下.,如果对您有所帮助的话,麻烦给...
作者goktugyil,源码EZSwiftExtensions,让 Swift 基础类型及基础类更容易访问扩展 举个栗子~ 快速打印项目版本号~appBuild~ print(ez.appVersion) // 0.3 print(ez.appBuild) // 7 print(ez....
Ruby Objective-C + Swift 扩展示例 $ rake compile$ ruby -Ilib -rhello -e "puts Hello::World.new(nil).greeting('world')
ExtSwift Swift扩展内容要求iOS 9.0以上版本/ tvOS 9.0以上版本/ macOS X 10.11以上版本/ watchOS 2以上版本Xcode 12.0+ 迅捷5.0+沟通如果需要帮助,请使用 。 (标记为“ extswift”) 如果您想问一个一般性的问题...
协议扩展事件调度程序使用Swift协议扩展实现EventDispatcher模式这是此博客文章的配套项目: : WWDC上Swift 2.0的一大亮点是引入了协议扩展:能够向协议中添加默认方法实现。 自WWDC以来,来自SketchyTech,David ...
RNG扩展 斯威夫特exntension为RandomNumberGenerator 。 描述 任何RandomNumberGenerator都会变得uniform: Uniform且normal: Normal 。 Uniform和Normal具有多个next功能。 例子 // Get random float number from ...
命令行工具Xcode源代码编辑器扩展Xcode构建阶段通过Applescript VSCode插件Git预提交钩子在CI上使用Danger配置选项规则Swift版本配置文件Globs Linting Cache File标头FAQ已知问题技巧Jar积分这是什么? SwiftFormat...
东西不多简单易懂、Swift语言如何使用UITableView、Swift与OC的混合开发、扩展(Extension)的简单使用、协议(protocol)
Swift里扩展,extension.类似于category 类别
使用此扩展在Xcode中生成并查看Swift代码的类图。 该源代码编辑器扩展利用了 Swift包。 您还可以将SwiftPlantUML用作命令行工具。 特征 :bar_chart: 从Swift文件创建类图 :flashlight: 从选定的Swift代码创建...
NSDate扩充功能,可更容易操作NSDate ,它建立在SWIFT的顶部功能提供最好的体验和安全性。特征使用常用比较运算符比较日期: >, >=, <, <= 使用该自定义运算符获取日期之间的间隔>-< 使用算术运算符添加/...