Swift
Swift基础
Morris_
个人笔记!
展开
-
Swift - EVReflection (二)
EVReflection原创 2022-12-15 13:20:39 · 171 阅读 · 0 评论 -
swift No exact matches in call to instance method ‘merge‘
* swift 字典 merge* swift 合并两个字典## 问题Swift 在合并两个字典的时候报如下错误: `No exact matches in call to instance method 'merge'````swiftvar dictionary1 = ["a" : "1", "b" : "2"]var dictionary2: [String: Any] = [:]dictionary1.merge(dictionary2, uniquingKeysWith原创 2022-12-15 10:31:37 · 777 阅读 · 0 评论 -
swift 与 oc 有哪些区别
这里总结了其中一些:* swift 不分 .h 和 .m ,只有一个 .swift 文件,文件的数量和后缀与 OC 不同* swift引入了命名空间,从此不用再import其他文件* swift 语言代码语句后不需要加";"* swift 语言比较简短简洁* swift 定义变量或常量使用 var 或 let* 字符串,swift "",OC @""* switch 语句,swift 可以是各种数据类型,OC 中的switch语句,不能判断对象类型, 只能判断基本类型中的整数* 判断语句原创 2022-12-14 10:34:13 · 2433 阅读 · 0 评论 -
swift UITextField 设置leftView不生效
> 1. 给UITextField 设置了 leftView,但是不显示> 2. 设置UITextField的光标输入位置1. 设置UITextField的leftView,但是没显示,视图层上也没有```swift let iamgeView = UIImageView(frame: CGRect(x: 8, y: 8, width: self.frame.size.height - 16, height: self.frame.size.height - 16)) self.l原创 2022-08-10 11:04:01 · 1118 阅读 · 0 评论 -
iOS PopoverController
# iOS PopoverController## 背景* UIPopoverController 在iOS9.0 已废弃`UIKIT_EXTERN API_DEPRECATED("UIPopoverController is deprecated. Popovers are now implemented as UIViewController presentations. Use a modal presentation style of UIModalPresentationPo原创 2022-09-27 08:47:52 · 429 阅读 · 0 评论 -
swift 设置 attributedPlaceholder 颜色不显示
> swift 给 UITextField 设置attributedPlaceholder,同时设置了insertTextPlaceholder将光标和输入位置做了更改,发现当设置 insertTextPlaceholder属性之后,设置的attributedPlaceholder效果失效。原创 2022-08-10 10:12:17 · 962 阅读 · 0 评论 -
swift JSONSerialization
JSONSerialization JSON string 转 数组、字典原创 2022-06-27 10:25:20 · 474 阅读 · 0 评论 -
iOS字典转成JSON换行符问题
问题使用系统框架将字典转成压缩转义后的JSON字符串,发现字符串中带有多个换行符。系统转JSON的方法如下:let json = try JSONSerialization.jsonObject(with: validData, options: options)例:Alamofire框架里面字典转JSON字符串的方法 public func encode(_ urlRequest: URLRequestConvertible, with parameters: Parameters?原创 2021-05-27 10:03:42 · 1140 阅读 · 0 评论 -
iOS侧滑功能三方开源库
文章目录ENSwiftSideMenu 从入门到放弃适用场景使用分析MMDrawerController概述使用分析SWRevealViewControllerENSwiftSideMenu 从入门到放弃三方库地址:https://github.com/Appolica/ENSwiftSideMenu适用场景大概看了下ENSwiftSideMenu的源码,作者写的代码还是挺简洁明了的。而且要实现的功能或者说要实现的效果也是很明确的。实现的效果就是在一个导航栏下,同时显示两个页面,一个menuVie原创 2021-06-21 14:25:15 · 559 阅读 · 2 评论 -
Swift 创建分类
Swift中怎么创建分类文件?OC中创建分类步骤如下cmd + n 打开如下界面选择Objective-C FilesNext创建分类文件File处填写分类名,填写类型,选择类之后Next。Swift中创建分类文件步骤如下cmd + nNext创建分类Swift分类例:给String添加一个分类,扩展一个返回MD5值的方法import Foundationimport CommonCrypto/// MD5extension String { var md5原创 2021-05-10 09:50:16 · 1185 阅读 · 0 评论 -
Alamofire
AlamofireAlamofire这个Swift网络框架还是挺好用的,拿来就可以直接使用。下面是基于 Alamofire 4.8.1。导入头文件import Alamofireimport SwiftyJSON声明一个SessionManager对象var manager: Alamofire.SessionManager?初始化SessionManager对象let sessionConfig = URLSessionConfiguration.defaultsess原创 2021-04-28 13:26:58 · 549 阅读 · 0 评论 -
快速浏览Swift-笔记
快速浏览Swift-笔记快速浏览Swift:https://docs.swift.org/swift-book/GuidedTour/GuidedTour.html变量也常量// 多行字符串,使用 “”" “”"let quotation = """I said "I have \(3) apples."And then I said "I have \(3 + 4) pieces of fruit.""""print(quotation)// 创建一个空数组,可变的var arra原创 2021-04-29 13:30:32 · 200 阅读 · 1 评论 -
Swift 纯代码创建项目
iOS 系统提供了两种项目入口,一个是Main.storyboard,一个是UIScene。Swift纯代码构建WindowSwift纯代码构建项目Main.storyboard创建一新的项目,默认项目入口是Main.storyboard,除非手动将Main.storyboard文件删除,改为纯代码入口。Main.storyboard的设置:TARGETS -> General -> Development Info如果是使用storyboard,即故事版开发的话,这里需要.原创 2021-06-18 11:04:27 · 990 阅读 · 1 评论 -
iOS开发学习之路
文章目录iOS开发学习之路Swift or Objective-CSwiftUI or UIKit学习iOS开发都需要学习哪些知识入门学习基础学习继续学习最后iOS开发学习之路最近有小伙伴问我iOS应该怎么学,其实我也不知道,下面是我个人的一些看法和观点。Swift or Objective-CSwift虽然是大势所趋,但是老的应用程序都还在使用Objective-C语言,如果是要学iOS开发,直接从Swift开始是一个不错的选择,如果你对Swift已经了解的差不多可以做项目的时候,建议对Obj原创 2021-04-30 11:03:34 · 307 阅读 · 0 评论 -
Swift iOS 10 UIAlertController
偶然发现在iPads iOS 14.3 func requestFailed(response:JSON){ if #available(iOS 10.0, *) { _ = Timer.scheduledTimer(withTimeInterval: 0.2, repeats: false) { (timer) in let message = response["errors"][0]["detail"].string .原创 2021-05-11 13:59:32 · 109 阅读 · 0 评论 -
iOS系统语音识别-Swift
基于Speech框架,实现语音识别转文字功能。系统要求 >= iOS 10。以下是在官方提供的Demo基础上稍作改动,目的有两个:1. 实现连续不间断地语音识别,除非自己手动调用停止,报错自动重新启动。2. 应用切后台后再次进入前台后语音可以正常使用 。代码实现下面是使用语音引擎和识别引擎一起来完成语音识别功能,语音引擎来录入语音,提供给识别引擎做识别。工作原理就是 AudioEngine 收集录入语音数据(AudioBuffer),将数据给 SFSpeechAudioBufferRecog.原创 2021-07-08 09:16:33 · 1721 阅读 · 0 评论 -
Swift Property ‘self.xxx‘ not initialized at super.init call
Swift重写父类的init方法时,报了如下错误。Property 'self.xxx' not initialized at super.init call大概意思是在调用父类init方法前,需要给属性赋值。报错代码 required init(leftController: UIViewController?, centerController: UIViewController) { super.init(nibName: nil, bundle: nil)原创 2021-11-12 13:52:08 · 4569 阅读 · 0 评论 -
Swift Must call a designated initializer of the superclass ‘UIViewController‘
虽然很简单,也记录一下,其他类似的报错也同理。 private init() {// super.init(nibName: nil, bundle: nil) super.init() }报错提示很明显哦,需要调用UIViewContoeller的初始化方法 private init() { super.init(nibName: nil, bundle: nil) }...原创 2021-11-12 10:51:45 · 4643 阅读 · 0 评论 -
Swift set/get方法
Swift 中重写属性的set和get方法Swift中如何重写属性的set和get方法set和get方法的本质是什么set和get方法紧跟着属性后面写,很紧凑,也清楚。class Person: NSObject { var _name: string? var name: String? { get { return _name } set { _name = newValue } }}这和OC中的声明一个带 _ 的变量,然后通过set、get方法.原创 2021-11-04 16:34:14 · 4332 阅读 · 0 评论 -
Swift复写UIViewController的init方法
在OC中我们直接复写 init 方法- (instancetype)initWithLeftViewController:(UIViewController *)leftViewController contentViewController:(UIViewController *)contentViewController { if (self = [super init]) { // Coding } return self;}在Swift中这样写原创 2021-11-02 16:07:12 · 2817 阅读 · 0 评论 -
Swift debugPrint 和 print
初学Swift 打印使用print,偶然看到有个debugPrint,也可以用。他俩的区别是什么呢?print() 是最常用的打印函数, debugPrint() 也可以用来打印。借用别人的总结就是 “You use debugPrint when you want more information about what is being printed to the console. The additional information is usually useful for debuggin.原创 2021-07-29 10:26:16 · 1113 阅读 · 0 评论 -
building for iOS Simulator, but linking in object file built for iOS, for architecture arm64
M1 Xcode项目编译报building for iOS Simulator, but linking in object file built for iOS, for architecture arm64Finder -> 应用程序 -> Xcode -> 显示简介 -> 勾选 “使用Rosetta打开”退出Xcode重启项目编译。如果项目中xib出现蓝线,需要清缓存,重新启动。...原创 2021-07-14 08:24:45 · 2136 阅读 · 0 评论 -
Overriding non-@objc declarations from extensions is not supported
Swift 对方付进行重写,报 Overriding non-@objc declarations from extensions is not supported 的错误。从错误提示上来看,重写的的这个方法在extensions中的定义没有@objc。找到这个分类中的这个方法,添加上@objc即可。如果在父类中复写OC的方法,在自雷Swift中重写该方法的话,需要添加@objc申明。@objc means you want your Swift code (class, method, prope原创 2021-07-14 07:28:17 · 1240 阅读 · 0 评论 -
Swift 原生网络请求
iOS HTTP请求原生组要的类是URLSession,是一个单例类。例1:GETfunc makeLogon() { // 构建URL let url:URL = URL(string: "https://xxx/xxx/API?xxx")! // 发送HTTP请求的的session对象 let session = URLSession.shared // 构建请求request var request = URLRequest(url: url)原创 2021-06-10 14:16:52 · 3105 阅读 · 1 评论 -
Swift - EVReflection (一)
EVReflection 是一个优秀的Swift开源框架,接入方便,使用简单。EVReflection https://github.com/evermeer/EVReflection以User为例,下面是一些常用的使用:User.swiftimport Foundationimport EVReflectionclass User: EVObject { var id: Int = 0 var name: String = "" var friends: [原创 2021-06-08 09:21:20 · 186 阅读 · 0 评论 -
Swift 之 JSONEncoder 和 JSONDecoder
Swift 之 JSONEncoder 和 JSONDecoder摘自官方文档:/// A type that can convert itself into and out of an external representation.////// `Codable` is a type alias for the `Encodable` and `Decodable` protocols./// When you use `Codable` as a type or a generic cons原创 2021-06-07 10:51:33 · 3429 阅读 · 0 评论 -
Swift Object Encodable
对对象类型进行encodextension Encodable { func asDictionary() throws -> [String:Any] { let data = try JSONEncoder().encode(self) guard let dictionary = try JSONSerialization.jsonObject(with: data, options: .allowFragments) as? [String:Any]原创 2021-05-28 09:21:57 · 336 阅读 · 0 评论 -
Swift Alamofire.AFError.ResponseSerializationFailureReason.inputDataNilOrZeroLength
Swift使用Alamofire发起一个HTTP请求,结果报如下错误:responseSerializationFailed(reason: Alamofire.AFError.ResponseSerializationFailureReason.inputDataNilOrZeroLength)用POST MAN测试了一下是没有任何返回的。没有任何返回会报inputDataNilOrZeroLength的错误。参考:responseSerializationFailed(reason: Alamof原创 2021-05-13 14:31:46 · 2154 阅读 · 0 评论 -
Error Domain=NSCocoaErrorDomain Code=3840 “Invalid value around character 4104.
使用Alamofire发了一个GET请求,出现了如下错误:responseSerializationFailed(reason: Alamofire.AFError.ResponseSerializationFailureReason.jsonSerializationFailed(error: Error Domain=NSCocoaErrorDomain Code=3840 "Invalid value around character 4104." UserInfo={NSDebugDescript原创 2021-05-12 14:16:03 · 1253 阅读 · 0 评论 -
Swift Alamofire ‘Error Domain=NSURLErrorDomain Code=-1003‘
使用Alamofire发起一个GET请求,结果总是返回Code=-1003,之前没出现过这个问题。而且直接在浏览器和POSTMAN上进行请求可以正常返回。Error Domain=NSURLErrorDomain Code=-1003原因造成 Code=-1003的原因可能有如下几个问题:Server response time limitServer rules about the incoming dataAuthentication problems响应超时请求超时的话可以加超.原创 2021-05-12 13:42:44 · 994 阅读 · 2 评论 -
[!] Unable to determine Swift version for the following pods:
问题pod install的时候报如下错误:[!] Unable to determine Swift version for the following pods:- `Alamofire` does not specify a Swift version and none of the targets (`ORC_RequestAPI`) integrating it have the `SWIFT_VERSION` attribute set. Please contact the autho原创 2021-03-18 11:20:40 · 1509 阅读 · 0 评论 -
Swift里的元组和可选类型
文章目录元组(Tuples)定义一个元组元组作为函数的返回值元组的适用范围可选类型(Optionals)定义可选类型示例分析Optional中使用nil元组(Tuples)元组将多个值分组为一个复合值,元祖中的值可以是任何类型,而不比彼此相通。定义一个元组例:let httpStatus = (statusCode: 200, description: "ok")读取数据:if httpStatus.statusCode == 200 {// ...}元组作为函数的返回值使用元组作原创 2020-05-13 11:04:17 · 402 阅读 · 0 评论 -
Swift基础语法快速浏览
文章目录推荐阅读基础语法快速浏览基础值类型转化控制流方法类和对象枚举和结构体协议和扩展错误处理泛型推荐阅读the swift programming language swift 5.2基础语法快速浏览基础printprint("Hello, world!")Swift打印使用print函数,无需导入单独的库来实现输入输出或字符串处理功能。main()无需关心mian函数,Swift项目中已经自动添加了全局的相关程序的入口,我们只需要在其他文件中编写hello world打印即可原创 2020-05-12 09:59:09 · 286 阅读 · 0 评论 -
纯代码构建Swift工程
有些东西很简单,但是我还是把它记录了下来。使用Storyboard创建一个新的项目后,应用程序从闪屏,到主窗口,再到第一个界面经过的文件分别是:LaunchScreen.storyboard->Main.storyboard->ViewController。如果我们要纯代码构建一个应用程序,即上述步骤我们通过代码来控制的话,需要删除Main.storyboard,并修改相关配置,添加一些代码。LaunchScreen.storyboard作为对闪屏的处理,这个不需要删除,系统提供的闪屏.原创 2020-05-11 10:43:57 · 523 阅读 · 0 评论 -
Swift工程main函数去哪里了?
有些东西很简单,但是我还是把它记录了下来。main()函数是所有应用程序的入口,C、C++、Python等所有的应用程序都有且仅有一个main函数作为程序的入口。Swift创建一个新的工程,项目文件中怎么没有main()函数?用OC创建一个新项目后,会生成一个main.m的文件,里面是main函数:#import <UIKit/UIKit.h>#import "AppDelegate.h"int main(int argc, char * argv[]) { NSStri.原创 2020-05-11 10:13:26 · 730 阅读 · 0 评论 -
第一个Swift应用
集成开发环境Xcode11.4 ,iOS 13。创建一个工程HelloWorldSwift1)Creat a new project2)iOS -> Single View App -> Next3)填写相关信息ProductName填写为HelloWorldSwift,即项目名称。User Interface我选Storyboard,之前使用OC开发,Storyboard比较熟悉,SwiftUI概念不熟,这里可以查查这两个的区别。4)Next第一个Swift应用项目结构原创 2020-05-11 09:38:46 · 375 阅读 · 0 评论 -
Cannot find ‘xxx‘ in scope
没有申明变量是let还是var导致编译报错``Cannot find ‘xxx’ in scope`例如:let solution = Solution.init()如果不加let或者var申明solution,就会报错。原创 2020-07-16 14:21:17 · 21971 阅读 · 0 评论 -
Binary operator ‘==‘ cannot be applied to operands of type ‘Int‘ and ‘[Int]‘
等号两边数据类型不一致进行比较报错Binary operator '==' cannot be applied to operands of type 'Int' and '[Int]'这个提示也挺明确,二元运算符 == 两边不能使用 Int 和 [Int] 。写代码时候粗心,拿 Int类型的变量和 [int] 类型的变量来比,一个整形数来和一个数组比,当然不能比。...原创 2020-07-16 14:15:04 · 2954 阅读 · 0 评论