Swift 是一种支持多编程范式和编译式的开源编程语言,苹果于2014年WWDC(苹果开发者大会)发布,用于开发 iOS,OS X 和 watchOS 应用程序。Swift 结合了 C 和 Objective-C 的优点并且不受 C 兼容性的限制。Swift 在 Mac OS 和 iOS 平台可以和 Object-C 使用相同的运行环境。2015年6月8日,苹果于WWDC 2015上宣布,Swif
转载 2023-08-19 10:00:43
63阅读
Swift 简介简介Swift 语言由苹果公司在 2014 年推出,用来撰写 OS X 和 iOS 应用程序2014 年,在 Apple WWDC 发布历史2010 年 7 月,苹果开发者工具部门总监克里斯·拉特纳开始着手 Swift 编程语言的设计 用一年时间,完成基本架构Swift 大约历经 4 年的开发期,2014 年 6 月发布计划在 2015 年底开源大事件2014 年 6 月
转载 2023-10-07 23:02:01
93阅读
# Swift 通知 在软件开发中,通知是一种常见的机制,用于在不同对象之间传递信息。在Swift中,通知机制也被广泛应用于各种场景,比如在应用程序中不同部分之间进行通信,或者在系统级别的事件发生时通知应用程序做出响应。 ## 什么是通知 通知是一种消息传递机制,用于在软件组件之间传递信息。通知有两个主要角色:发送者和接收者。发送者负责发送通知,而接收者负责接收并响应通知。 在Swift
原创 2024-06-26 05:14:36
148阅读
前言我们知道在APP开发过程中。监听手机当前的网络状态还是一个非经常常使用的方法,这里我来为大家接受一种使用AFNetWorking来监听当前的网络状态的方法;网络监听对程序开发的帮助有非常多:比方下载时在不同的网络状态下使用不同下载策略、缓存策略、或者就是一个单纯的提示使用控件在这里我使用的是AFNetWorking 3.0之前的版本号。我并没有測试过最新的3.0.4版本号能否够正常使用,
  别人一看到我的 Swift 代码,立刻就会问我为什么如此频繁的使用 extension。这是前几天在我写的另一篇文章中收到的评论: 我大量使用 extension 的主要目的是为了提高代码可读性。以下是我喜欢使用 extension 的场景,尽管 extension 并非是为这些场景设计的。 私有的辅助函数 在 Objective-C 中,我们有 .h 文件和 .m 文件。同时管理
声明常量和变量 常量和变量必须在使用前声明,用 let 来声明常量,用 var 来声明变量。下面的例子展示了如何用常量和变量来记录用户尝试登录的次数: 1.  let maximumNumberOfLoginAttempts = 10   2.  var currentLoginAttempt = 0可以在一行中声明多个常量或者多个变量,用逗号隔开: 1.
转载 2024-09-05 15:18:50
19阅读
全球领先的跨境收款机构worldfirst近日正式宣布上线澳元收款账户,并对所有卖家开放,即日起所有卖家均可在WorldFirst注册澳元收款账户。WorldFirst也因此成为拥有最多收款币种的跨境收款服务商,能为客户开通美元、欧元、英镑、日元、加元、澳元等收款账户。而与此同时,WorldFirst方面也透露新西兰元及新加坡元也将陆续开通,届时WorldFirst将实现对全球主流货币收款账户的全
ios系统如何远程服务器 内容精选换一换云服务器网络异常、防火墙未放行本地远程桌面端口、云服务器CPU负载过高等场景均可能导致云服务器无法正常登录。本节操作介绍无法登录Linux弹性云服务器的排查思路。当您的云服务器无法远程登录时,我们建议您首先检查是否可以通过控制台远程登录。再参考排查思路检查登录异常的原因。远程登录失败时,请首先尝试能否通过管理控制台,使用VNC方式登录弹性华为云帮助中心,为用
在这篇博文中,我将详细介绍如何在Swift中实现本地通知,从环境准备开始,直到排错指南和优化技巧。希望通过这样的结构,让你能够轻松掌握Swift本地通知的实现过程。 ## 环境准备 在开始之前,我们需要确保环境的准备工作已经到位。 ### 前置依赖安装 确保你的开发环境中安装了最新版本的Xcode,并配置了iOS开发环境。 ```bash # 安装CocoaPods(如果还未安装) sud
原创 7月前
55阅读
Swift 对 Error Handling详解苹果官方文档解释跟其它语言一样,Swift的异常处理是在程序抛出异常后的处理逻辑。 Swift提供了一流的异常抛出、捕获和处理的能力。跟Java语言类似, Swift的异常并不是真正的程序崩溃, 而是程序运行的一个逻辑分支;Swift和Java捕获异常的时序也是一样的。当Swift运行时抛出异常后并没有被处理, 那么程序就会崩溃。在Swif
前言方法是 Swift 中的一个重要概念,方法允许你把需要复用的代码封装进方法中,这样当你调用方法时,实际上你的想法是执行方法中的那些代码,方法的出现极大的提高了方法的复用性。Swift 工程的环境是非常复杂的,如何凭借方法的名字正确的找到方法中的代码实际上并不是听起来那样简单,在寻找代码的道路上又静态派发和动态派发两种不同的方式。1、动态派发OC 程序员应该不会对动态派发感到陌生,OC 中的方法
在当今的应用开发中,内部通知功能已成为提升用户体验的关键。在这篇博文中,我将逐步介绍如何在 Swift 应用中实现内部通知功能,从环境准备到性能优化,以及如何扩展生态系统。 ### 环境准备 首先,我们需要确认我们的技术栈兼容性,这里是一个简单的版本兼容性矩阵: | 环境 | Swift 版本 | iOS SDK 版本 | |-----------|--------------|
原创 7月前
22阅读
Swift派发的目的是让CPU知道被调用的函数在哪里,Swift语言支持编译型语言的直接派发,函数表派发,消息机制派发这三种派发机制.1.直接派发 直接派发是最快的,原因是调用指令少,并且可以通过编译器进行比如内联等方式的优化,缺点是由于缺少动态性而不支持继承.2.函数表派发 函数表派发具有动态性,在Swift里函数表叫 Witness Table,在其他语言中函数表叫 Virtual
# Swift 中的应用推送通知 推送通知是移动应用中一种重要的沟通方式,允许服务器向用户发送消息即使应用未在前台运行。本文将介绍如何在 Swift 应用中实现推送通知,提供必要的代码示例,并通过类图展示相关结构。 ## 什么是推送通知? 推送通知是一种由应用提供商通过推送服务将消息发送给用户的技术。通过这种方式,用户可以实时获取应用的更新与信息。对于提高清用户参与度和保留率,推送通知起着至
原创 11月前
105阅读
在这篇博文中,我将分享如何在 Swift 中实现通知分组显示。这一特性对提升用户体验非常重要,能够有效地管理应用的通知,并为用户提供更清晰的信息展示。我们将通过各个方面的讨论,逐步剖析这个问题,涵盖版本对比、迁移指南、兼容性处理、实战案例、排错指南和性能优化。 ## 版本对比 为了解决 Swift 通知分组显示的问题,我们需要关注不同版本的特性差异。下表总结了关键版本的通知功能特性: | 特
原创 7月前
24阅读
1,通知(NSNotification)介绍这里所说的通知不是指发给用户看的通知消息,而是系统内部进行消息传递的通知。要介绍通知之前,我们需要先了解什么是观察者模式。观察者模式 (Observer):指一个对象在状态变化的时候会通知另一个对象。参与者并不需要知道其他对象的具体是干什么的 。这是一种降...
转载 2015-12-31 09:58:00
268阅读
2评论
1,通知(NSNotification)介绍这里所说的通知不是指发给用户看的通知消息,而是系统内部进行消息传递的通知。要介绍通知之前,我们需要先了解什么是观察者模式。观察者模式 (Observer):指一个对象在状态变化的时候会通知另一个对象。参与者并不需要知道其他对象的具体是干什么的 。这是一种降...
转载 2015-10-07 10:55:00
385阅读
2评论
类型标注当你声明常量或者变量的时候可以加上类型标注(type annotation),说明常量或者变量中要存储的值的类型。如果要添加类型标注,需要在常量或者变量名后面加上一个冒号和空格,然后加上类型名称。var welcomeMessage: String 一般来说你很少需要写类型标注。如果你在声明常量或者变量的时候赋了一个初始值,Swift可以推断出这个常量或者变量的类型,请参考类型安全和类型推
转载 2024-03-07 14:15:31
36阅读
有并发的地方就存在线程安全问题,尤其是对于 Swift 这种还没有内置并发支持的语言来说线程安全问题更为突出。下面我们通过常见的数组操作来分析其中存在的线程问题,以及如何实现一个线程安全数组。问题所在因为无法确定执行顺序,所以并发导致的问题一般都很难模拟和测试。不过我们可以通过下面这段代码来模拟一个并发情形下导致的数据竞争问题。var array = [Int]() DispatchQueue
<pre name="code" class="objc">转自:http://letsswift.com/2014/06/swift_overview/ Swift语言概览 基本概念 注:这一节的代码源自 The Swift Programming Language中的A Swift Tour。
转载 2023-08-25 00:58:58
106阅读
  • 1
  • 2
  • 3
  • 4
  • 5