Swift

Swift 是一种支持多编程范式和编译式的编程语言,是用来撰写 macOS / OS X、iOS、watchOS 和 tvOS 的语言之一。

  • Total
  • 1239
话题聚合
  • 开发者眼中的SwiftUI:它为我和用户带来了什么?

    原因其实很简单,因为新的 SwiftUI 框架利用了苹果自定义创建的 Swift 语言的特性,使开发人员更容易、更快地构建更好的用户界面代码,同时错误会更少,也能创造更多的功能...也就是说,我们将可以把更少的精力花在创建常规交互元素的应用上,从而可以减少代码调试和维护的次数,以及使用如下功能:自动适应 iOS 和 macOS 的深色模式、支持新平台功能的催化剂项目(Project Catalyst)、先进的可访问性、动态类型、允许用户调整大小的文本、多语种的广泛本地化、优美流畅的动画、洁净的苹果 UI 和导航...苹果还为开发者们创造了一系列教程演示如何构建一个 SwiftUI iPhone 应用程序,并一步一步解释如何创建一个新的 Xcode 项目、文本布局和视图使用栈,如何自定义图像视图,如何使用 UIKit SwiftUI 视图,如何构建列表和导航,如何处理用户输入,如何画出路径和形状,如何实现动画视图和转换,然后如何组成更复杂的接口,如何连接 UI 控件和 UIKit 的界面。
  • 将 Swift 序列切分为头部和尾部

    将 Swift 序列切分为头部和尾部

    对于集合来说这很容易:extension Collection { var headAndTail: (head: Element, tail: SubSequence)...下面是 他的代码(我略微对格式进行了修改):extension Sequence {var headAndTail: (head: Element, tail: SubSequence)...如果我们需要让 Sequence 拥有同样的功能,就需要添加一个独立的扩展,使用新的 DropWhileSequence 作为返回类型的尾部:extension Sequence {var headAndTail: (head: Element, tail: DropWhileSequence<。
    4 天前
  • 时隔两年 华硕终于出货ROG Swift PG35VQ 200Hz电竞显示器

    时隔两年 华硕终于出货ROG Swift PG35VQ 200Hz电竞显示器

    2017 年的时候,华硕向我们展示了怪兽级性能的 ROG Swift PG35VQ 200Hz 电竞显示器...(该显示器提供了 DisplayPort 1.4 和 HDMI 2.0 输入端口)值得一提的是,PG35VQ 也是华硕首款支持 Aura Sync 灯效的 ROG 显示器,支持玩家定制自己喜欢的沉浸式照明模式...目前华硕 ROG Swift PG35VQ 显示器已在英国开售,价格为 2699 英镑(2.36 万 RMB),预计后续会很快向更多市场推出。
    6 天前
  • Swift 5.1 新特性:透明类型关键字 some

    }但是这样写编译器会报错:Protocol 'Equatable' can only be used as a generic constraint because it has Self or associated type requirementsEquatable 的协议中的定义和具体类型有关,上面的例子中编译器不知道 makeInt() 返回的具体类型是哪一个,因此它不能作为一个函数值返回的类型...}在使用泛型约束声明后,在代码调用的时候编译器可以通过类型推断出具体类型是什么,因此就满足了 Equatable 的定义...在某些场景下,开发者的函数返回类型是确定的,可不可以编译器自己推断出具体类型,这样就可以不用泛型约束了呢。
  • 高仿漫画类项目-Swift5版本

    高仿漫画类项目-Swift5版本

    一、不知不觉Swift已经更新到5.0了,庆幸的是ABI 终于稳定了,是时候开始燥起来了,业余时间用Swift5仿写了漫画类APP,这个项目使用了常见的框架SnapKit、Kingfisher、Moya、HandyJSON、SwiftyJSON、MJRefresh、IQKeyboardManagerSwift、MBProgressHUD、IQKeyboardManagerSwift、HMSegmentedControl等框架,页面布局,逻辑处理,这个项目适合有经验和初学者学习,接下来简单介绍下项目的组成...有需要的同学可以到我的GithubSwift5 精仿漫画类App上面下载哦,喜欢的希望得到您的star哦,谢谢您们...二、项目结构展示,具体代码编写请点击GithubSwift5 精仿漫画类App查看谢谢21.目录22.目录三、项目主要分为首页 分类  书架 我的四个大模块,每个模块里面有对应的列表和详情页面,我把项目主要截图给大家分享出来① 首页1.首页2.首页② 分类3.分类③ 详情页面4.详情页④ 我的5.我的⑤ 目录6.目录页⑥ 评论7.评论页.⑦ 漫画欣赏页8.文章阅读页9.阅读页滑动⑧ 屏幕旋转10.强制横竖屏11.强制横竖屏⑨ VIP列表12.VIP⑩ 订阅列表13.订阅⑩ 排行列表14.排行⑩ 搜索页面16.搜索⑩ 历史缓存页面17.搜索页⑩ 项目目录分类截图18.项目目录19.项目目录120.项目目录2小伙伴们请狠狠猛戳 Github喜马拉雅项目-Swift5版本作者:博行天下链接:https://www.jianshu.com/p/c263abb005d6。
    2019-06-11
  • Project Athena首发:宏碁2019款Swift 5 14笔记本上手体验

    Project Athena首发:宏碁2019款Swift 5 14笔记本上手体验

    Project Athena 是英特尔提出了一项新计划,旨在让通过该认真的笔记本电脑在速度、响应、电池续航等方面真正达到消费者的预期,比如一秒钟内从待机状态恢复、以及承诺 9 小时的电池续航...Acer Swift 5 14(2019),图 via MSPU厂商声称这是目前市面上重量最轻的同级别独显机型,掌托区域采用了镁锂合金与镁铝框架,能够在不增加宽度和厚度的同时,将重量控制在 1KG 以下...宏碁计划在今年秋季开售 2019 款 Swift 5 14 机型,具体上市时间取决于英特尔 10nm Ice Lake 处理器的量产有多快。
    2019-06-08
  • WWDC19 苹果宣布全新 UI 框架 SwiftUI

    WWDC19 苹果宣布全新 UI 框架 SwiftUI

    据官方介绍,SwiftUI 是一个创新且非常方便使用的框架,开发者通过 Swift 语言的强大功能即可为苹果的所有硬件设备构建用户界面 —— 只需使用一套工具和 API...拥有更直观的新设计工具Xcode 11 包含更直观的新设计工具,可让开发者通过拖拽的方式使用 SwiftUI 构建界面,在这过程中可以直接设置控件的相关属性...SwiftUI 示例代码声明布局List(landmarks) { landmark in。
    2019-06-04
  • WWDC 2019:发布 SwiftUI 升级 ARKit 3

    WWDC 2019:发布 SwiftUI 升级 ARKit 3

    在苹果软件工程高级副总裁克雷格·费德里吉(Craig Federighi)的现场演示中,SwiftUI 可以直接将百行代码简化为十几行代码,只需要配合使用一套工具和 API,SwiftUI 就可以用声明式的 Swift 语法快速构建一套结合了动画和控件的 UI 界面...下载附件 (288.12 KB)...和 iOS 13、iPadOS、新 macOS Catalina 不同,SwiftUI 和 ARKit 3 都是面向开发者的新开发工具,这两项更新可能将大幅提升开发者开发普通应用和 AR 应用的效率,而用户最终也会从繁荣的苹果生态中受益。
    2019-06-04
  • WWDC19:苹果宣布全新 UI 框架 SwiftUI

    WWDC19:苹果宣布全新 UI 框架 SwiftUI

    据官方介绍,SwiftUI 是一个创新且非常方便使用的框架,开发者通过 Swift 语言的强大功能即可为苹果的所有硬件设备构建用户界面 —— 只需使用一套工具和 API...拥有更直观的新设计工具Xcode 11 包含更直观的新设计工具,可让开发者通过拖拽的方式使用 SwiftUI 构建界面,在这过程中可以直接设置控件的相关属性...SwiftUI 示例代码声明布局List(landmarks) { landmark in   HStack {      Image(landmark.thumbnail)      Text(landmark.name)      Spacer()            if landmark.isFavorite {         Image(systemName: "star.fill")            .foregroundColor(.yellow)      }   }}构建可复用的组件struct FeatureCard: View {   var landmark: Landmark      var body: some View {      landmark.featureImage         .resizable()         .aspectRatio(3/2, contentMode: .fit)         .overlay(TextOverlay(landmark))   }}简便的动画创建方式VStack {   Badge()      .frame(width: 300, height: 300)      .animation(.basic())   Text(name)      .font(.title)      .animation(Animation.basic().delay(0.25))}SwiftUI 支持的设备要求版本较高,将在7月份开启公测,官方介绍如下:iOS 13.0+ BetamacOS 10.15+ BetaUIKit for Mac 13.0+ BetatvOS 13.0+ BetawatchOS 6.0+ BetaSwiftUI 文档地址 | SwiftUI 官方教程。
    2019-06-04
  • 苹果发布编程语言SwiftUI 支持旗下多系统

    苹果发布编程语言SwiftUI 支持旗下多系统

    新浪科技讯 4日凌晨消息,苹果公司今日在美国召开2019年度WWDC全球开发者大会(以下简称WWDC19),更新旗下用于手机、电脑、智能手表和电视机顶盒的软件操作系统...公开资料显示,Swift是苹果于2014年WWDC发布的新开发语言,可与Objective-C*共同运行于Mac OS和iOS平台,用于搭建基于苹果平台的应用程序...一年一度的苹果WWDC大会再次召开,在本届#WWDC19上# 我们很有可能看到iOS 13、macOS 10.15、watchOS 6和tvOS 13等全家桶系统更新。
    2019-06-04
  • 苹果发布Swift UI 帮助开发人员用更少的代码构建更好的程序

    苹果发布Swift UI 帮助开发人员用更少的代码构建更好的程序

    新的Swift UI使用图形模块放入代码段,在扩展时添加行,下拉菜单使开发人员更容易更改参数...只需单击一下,开发人员就可以切换到模拟器,应用程序几乎可以立即移动到实际硬件,Xcode中的实时编辑会自动迁移到连接的设备...Swift UI还与其他API集成,如ARKit,包括从左到右语言的自动语言优化。
    2019-06-04
  • SwiftUI

    SwiftUI

    SwiftUI is an innovative new way to build user interfaces across all Apple platforms, so you can create better apps with less code. With a declarative Swift syntax that's easy to read and natural to write, SwiftUI works seamlessly with new Xcode design tools to keep your code and design perfectly in sync. Automatic support for Dynamic Type, Dark Mode, localization, and accessibility means your first line of SwiftUI code is already the most powerful UI code you’ve ever written.Learn more。
  • 华硕展示64.5英寸ROG Swift PG65UG大屏游戏显示器

    华硕展示64.5英寸ROG Swift PG65UG大屏游戏显示器

    (题图 via AnandTech)据悉,华硕 ROG Swift PG65UQ 采用了 64.5 英寸 @ 8-bit 4K 超高清 AMVA 面板,亮度 750-1000 尼特(典型值 / HDR)、对比度 3200:1 至 4000:1(最小 / 典型值)、视角 178°、刷新率 120 至 144 Hz(正常 / 超频)、灰阶响应时间为 4-ms...比如华硕决定不为其 64.5 英寸游戏显示器配备高端条形音箱和集成的 NVIDIA Shield STB(大部分游戏玩家并不需要、砍掉可节省成本),同时显示器还有一个 USB 集线器和一个 IR 接收器...遗憾的是,目前华硕尚未宣布 ROG Swift PG65UQ 的确切上市日期和建议零售价。
    2019-06-01
  • 宏碁更新Nitro 5与Swift 3笔记本产品线 采用新一代锐龙移动平台

    宏碁更新Nitro 5与Swift 3笔记本产品线 采用新一代锐龙移动平台

    宏碁刚刚宣布了 AMD 笔记本产品线的更新,让 Nitro 5 和 Swift 3 笔记本用上了最新的 AMD 锐龙移动处理器(上一代采用了 2500U 和 2700U)...更新后的 Nitro 5 笔记本搭载了 AMD Ryzen 7 3750H 处理器,其采用了四核 / 8 线程的设计,基础频率 2.3GHz / 动态可达 4GHz,热设计功耗 35W(cTDP 介于 12~35W 之间)...作为对比,上一代 Nitro 5 笔记本采用了 Ryzen 5 2500U 处理器,cTDP 设置为 25W。
    2019-05-23
  • 宏碁 Nitro 5 和 Swift 3 都用上了最新的 AMD Ryzen 处理器

    宏碁 Nitro 5 和 Swift 3 都用上了最新的 AMD Ryzen 处理器

    继之前公布了一系列搭载英特尔芯片的新笔记本后,Acer 今天又带来全新的 Nitro 5 和 Swift 3,为想要 AMD 芯片的消费者提供了不同的选项...这次的新机会配备第二代 Ryzen 移动处理器,其中 15.6 吋的 Nitro 5(上图)采用四核心 2.3GHz 的 Ryzen 7 3750H 芯片,同时有 Radeon RX 560X 独立显卡...而 14 吋的 Swift 3 则使用了相对弱一点的四核心 2.3GHz Ryzen 7 3700U 处理器,图像部分则会准备 Vega 集成显卡或是 Radeon RX 540X 独立显卡供用户选择。
    2019-05-23
  • 来一次有侧重点的区分Swift与Objective-C

    2.4 选择使用类和结构体使用struct:任何情况下,优先考虑使用struct,如果满足不了,再考虑class - 比如数据被多线程使用,而且数据没有使用class的必要性,就使用struct - 希望实例被拷贝时,不收拷贝后的新实例的影响 - 几何图形的大小,可以封装width和height属性,都是Double类型 - 指向连续序列范围的方法,可以封装start和length属性,都是Int类型 - 一个在3D坐标系统的点, 可以封装x, y和z属性,都是Double类型使用class - 需要继承 - 被递归调用的时候(参考链表的实现,node选用class而不是struct) - 属性数据复杂 - 希望引用而不是拷贝参考链接1:类和结构体 参考链接2:官方文档三、Objective-C中的protocol与Swift中的protocol的区别相比于OC,Swift 可以做到protocol协议方法的具体默认实现(通过extension)相比多态更好的实现了代码复用,而 OC 则不行...多态的不足: - 父类有部分public方法是子类不需要的,也不允许子类覆盖重写 - 父类有一些方法是必须要子类去覆盖重写的,在父类的方法其实也是一个空方法 - 父类的一些方法即便被子类覆盖重写,父类原方法还是要执行的 - 父类的一些方法是可选覆盖重写的,一旦被覆盖重写,则以子类为准较好的抽象类型应该: - 更多地支持值类型,同时也支持引用类型 - 更多地支持静态类型关联(编译期),同时也支持动态派发(runtime) - 结构不庞大不复杂 - 模型可扩展 - 不给模型强制添加数据 - 不给模型增加初始化任务的负担 - 清楚哪些方法该实现哪些方法不需实现3.3、OneV's Den提到的面向对象的三个困境:1、动态派发的安全性(这应该是OC的困境,在Swift中Xcode是不可能让这种问题编译通过的)在Objective-C中下面这段代码编译是不会报警告和错误的NSObject *v1 = [NSObject new]..., isFirst: Bool) {。
  • 使用 Swift 实现基于堆的优先级队列

    使用 Swift 实现基于堆的优先级队列

    所以我们将会研究如何自行实现基于堆的优先级队列...实现优先级队列我们将首先从声明 PriorityQueue 类开始,然后再实现它的初始化方法与存储元素,同时完成一些“有则更好”的方法...{ return self.queue.first } public func clear() { self.queue.removeAll() } /** 弹出队列中的第一个元素,并通过将根元素移向队尾的方式恢复最小堆排序。
    2019-05-06
  • Swift编写--仿照Twitter客户端

    Swift编写--仿照Twitter客户端

    前端代码纯Swift编写,基本页面已经编写完成,下面首先将展示一下登录注册模块.后端接口用Python3.0+编写,实现部分接口,数据库采用MySql.项目是完全仿照Twitter 客户端编写.由于项目时间较长,内容不乏一些OC的编程思想,有需要的随意看看思路吧.由于内容较多,文章简要介绍了一下,列了几张图.不麻烦的话给个赞或者star,谢谢...前台代码地址:https://github.com/waitwalker/MyTwitter后台代码地址:https://github.com/waitwalker/MyTwitterAPI一. 项目主要架构模式:1.1 尽量采用现在比较流行的MVVM(model,view,viewModel),这里举一个简单的使用例子=>...关于页面是一个列表页面:图1.1 关于页面(登录页面右上角按钮触发)1.2 列表的数据源来自MTTAboutViewModel,MTTAboutViewModel通过一个类方法将数据回调给MTTAboutTwitterViewController, MTTAboutTwitterViewController将数据传给cell(view).MTTAboutTwitterViewController不负责数据的请求以及业务处理.图1.2 MTTAboutViewModel数据请求处理1.3 将数据回调给VC:图1.3  VC获取viewModel回调过来的数据1.4 view显示图1.4 view显示数据二. 项目主要技术和第三方框架:项目的架构主要采用mvvm模式,布局采用的是SnapKit(3.0+版本).网络请求用的是Alamofire.json数据解析用的SwiftyJSON.事件流的监控用的是RxSwift,之前用过ReactiveCocoa,ReactiveCocoa也有自己的swift版本,两者都属于响应式编程框架,在语法上还是有很大区别.学习RxSwift比一门新的语言学习起来还要难受(个人感觉),不过基本用法掌握后使用起来很方便,具体实现可以参考项目中的代码.还有其他方面的,比如设计模式什么的,太多,大家有兴趣的可以把项目克隆下来看看.由于项目时间较长,内容不乏一些OC的编程思想,有需要的随意看看思路吧.三 .项目结构主要分为:3.1 登录&。
    2019-04-29
  • SWIFT任命Javier Pérez-Tasso为首席执行官,将加速转型

    SWIFT任命Javier Pérez-Tasso为首席执行官,将加速转型

    雷锋网(公众号:雷锋网)AI金融评论消息,近日SWIFT宣布任命Javier Pérez-Tasso为新任首席执行官...我相信,任命Javier为新任首席执行官将确保SWIFT继续发扬卓越与创新的传统,更好地服务全球金融社群,同时也能加速实施SWIFT既定战略...Pérez-Tasso在担任SWIFT首席市场官时,负责制定SWIFT目前正在执行的五年战略。
    2019-04-26
  • Swift 5.0 值得关注的特性:Handle unknown values using

    Swift 5.0 值得关注的特性:Handle unknown values using "@unknown defa

    把 swift 升级到 5.0 的时候相信大家一定会遇到建议添加 @unknown default 的警告:@unknown default 解决的两个问题未来增加新的 case 后不会影响原有代码的编译如果 switch 语句中覆盖了枚举的每个 case,那么未来这个枚举如果增加了一个值,一定会对原来调用的代码造成 break change...iOS 每个版本升级底层都会增加了一些功能,使用@unknown default 标记在 switch 语句中,如果有新的枚举值编译器就可以很好的提示用户有新的 case 需要处理...这个特性如果被社区接受的话,猜测 swift 在未来版本也会支持用户自定义的 swift 枚举也可以标记为 non-frozen。
    2019-04-24

相关链接

为你发现的专属好站