NSString 与 String 之间可以随意转换 let someString = "123" let someNSString = NSString(string: "n123") let strintToNSString...= someString as NSString let nsstringToString = someNSString as String String 是结构体, 值类型, NSString 是类...通常, 没必要使用 NSString 类, 除非你要使用一些特有方法, 例如使用 pathExtension 属性 怎么获取一个 String 的长度 不考虑编码, 只是想知道字符的数量, 用characters.count....unicode) // 10 "你好".lengthOfBytes(using: .unicode) // 4 "你好".lengthOfBytes(using: .utf8) // 6 如何截取 String...的某段字符串 swift 中, 有三个取子串函数 substring:to , substring:from, substring:with. let simpleString = "Hello,
参考资料 Swift Standard Library Reference 主体为对该链接 String 部分理解基础上的翻译,但有较大改动且加入更多个人见解与扩展内容 Unicode and you...正文 Swift 标准库提供了 String 文本类型,适用 Unicode 文本。本文内容就是,如何对它进行定位(index)和切分(slice)。...为了理解 Swift 这样设计的目的,下面要简单扯下字符集。...前面我们说过 Swift 标准库提供的 String 用的是 Unicode ,现在再回去看前面那句报错 Subscript is unavailable: cannot subscript String...(姑且先这么说吧) String 中要定位、切分字符串,需要使用 String.Index 对象提供的一系列方法,它们会确保操作以字符为单位进行,不会出现让你把一个多字节字符砍成两半的问题: // successor
iOS runtime swift中的Swizzling方法交换 背景知识 Swift 是一种强类型语言。即默认类型是安全的静态类型。...纯Swift类的函数调用已经不再是OC的运行时发送消息,而是类似于C++的vtable,在编译时就确定了调用哪个函数,所以没法通过runtime获取方法,属性。...Swift中的动态性可以通过OC运行时来获得,动态性最常用的就是方法替换(Method Swizzling)。...swift动态修饰符 @objc 将Swift函数暴露给OC运行时,但是它仍然不能保证完全动态,编译器会尝试去对它做静态优化 dynamic 动态功能修饰符,它能保证函数,属性可以获得动态性 Swizzling...]() public class func once(file: String = #file, function: String = #function, line: Int = #
前提 目前TRTC官网上提供的一些场景化demo(比如TUIMeeting )是用的swift写的,下面以OC项目中集成TUIMeeting这个组件为例简单介绍下OC 调用swift 正文 1、集成TUIMeeting...组件直接参考TRTC官网文档https://cloud.tencent.com/document/product/647/45681 2、添加swift 文件,只要是混编无论是在oc项目中添加swift...文件的oc类中导入“项目名-Swift.h”文件,command+鼠标点击看是否能进到文件中 Finished running TRTCDemo on khiPhone.png 6、进不去“项目名-Swift.h...8、删除本地自己创建的“项目名-Swift.h”文件,再重复第5步进来就能看的你需要的“项目名-Swift.h”文件了 h TRTCDemo-Swift.h.png h TRTCDemo-Swift.h.png...然后就可以在OC类中导入“项目名-Swift.h”文件调swift文件了 最后 因为是以TUIMeeting为例,直接用pod集成的TUIMeeting组件中有些类如TRTCMeetingMainViewController
sil swiftc -emit-sil -target x86_64-apple-ios13.5-simulator -sdk $(xcrun --show-sdk-path --sdk iphonesimulator...类的方法汇编调用 我们新建一个 Swift 项目,需要注意的是,一定要用真机跑,因为我们的 iOS 程序都是要装到手机上的,而手机的架构目前基本都是 arm64 的架构。...swiftc -emit-sil -target x86_64-apple-ios13.5-simulator -sdk $(xcrun --show-sdk-path --sdk iphonesimulator...Mach-O 文件 Mach-O 其实是 Mach Object 文件格式的缩写,是 mac 以及 iOS 上可执行文件的格 式, 类似于 windows 上的 PE 格式 (Portable Executable...它们怎么相加呢,iOS 属于小端模式,所以 90 FB FF FF 要从右边往左读。
* Swift 的nil和 Objective-C 中的nil并不一样。...在 Swift 中,nil不是指针——它是一个确定的值,用来表示值缺失。任何类型的可选状态都可以被设置为nil,不只是对象类型。...是所有刚刚接触Swift的OC程序员最最蛋疼的问题, 前期开发要注意多看文档和利用编译器提示解决(option + click) 注意 * 在Swift开发中, 尽量不要使用强制解包, 不安全 */...let url = NSURL(string: "http://www.520it.com") print(url) //print(url!)...let url1 = NSURL(string: "http://www.520it.com/图片/abc.png") print(url1) /*: 可选绑定(optional binding) *
本文语法为Swift4 获取字符串的长度 let str = "窗前明月光,疑是地上霜"; let length = str.count; 正则获取字符串 let str = "哈哈[呵呵]嘿嘿" if...= range.upperBound){ let leftStr = String(str[str.startIndex.....<range.lowerBound]); let midStr = String(str[range]); let rightStr = String(str[range.upperBound...String.Index.init(encodedOffset: 2)] let result2 = str[String.Index.init(encodedOffset: 6).....joined(separator: ";") print("结果:\(result)") 打印的结果 结果:哈哈;呵呵;嘿嘿 字符串格式化 let duration = 80 let result = String.init
一个iOS开发初级菜鸡.png Swift 基本语法01-Swift简介 Swift 基本语法02-"let"和"var" Swift 基本语法03-"if let"和"guard let" Swift...= "iOS开发大菜逼" // 下面这样写会报警告:String interpolation produces a debug description for an optional value...取字符串子串 1> 建议用NSString作为中转,因为Swift取子串的方法一直在优化 let str = "王红庆大帅逼" let ocStr = str as NSString let string...= ocStr.substring(with: NSMakeRange(2, 4)) print(string) // 输出:庆大帅逼(从第2个'庆'字往后取4位) 2> swift里从第...".endIndex) print(string) // 输出:庆大帅逼 3> swift里取希望得到的字符串(暂时不推荐,还是转成OC字符串易懂一些) let str = "王红庆大帅逼
前言 Swift 打印日志我们我们都用print 但是我们怎样在打印日志的同时输出 所在的文件和方法呢 在 Swift 中,编译器为我们准备了几个很有用的编译符号,用来处理类似这样的需求,它们分别是:...符号 类型 描述 FILE String 包含这个符号的文件的路径 LINE Int 符号出现处的行号 COLUMN Int 符号出现处的列 FUNCTION String 包含这个符号的方法名字...Foundation class ZJLog{ static var isDebug = true; static func logDebug(_ message: T,file: String...= #file,method: String = #function,line: Int = #line){ if(isDebug){ print("[Debug
iOS_Swift高阶函数 图片 1....例如: let numbers = [1, 4, 2, 3] let res = numbers.sort { $0 < $1 } 看着不像是函数作为参数,是因为 Swift 尾随闭包 Trailing...Swift 允许当函数的最后一个参数是闭包时,可以以紧跟 { } 的形式,将最后一个闭包的内容附加在函数后面。...}.map { $0 * $0 }.reduce(0) { $0 + $1 } Reference: Apple Documentation for swift...Swift 烧脑体操(三) - 高阶函数 深入浅出Swift高阶函数-Map、Filter、Reduce swift小知识点之高阶函数之map, filter, reduce
2、基本数据类型 这里介绍一下Swift的基本数据类型:整数、浮点数、布尔型、可选型和元组,其它较复杂的后面再介绍。Swift中的数据类型的首字母都是大写的。...另外,整数类型都有属性max和min,分别表示不同整数类型的最大值和最小值,在Swift中访问属性采用“点方法”。 ?...介绍一个转型的例子,在Swift中,String类型可以和Int类型的实例相互转换,你可以把诸如"12"这样的字符串转换成Int,但是不能转换“小明”这样的字符串,Swift风格的转型使用构造器。...操作符” 由于在真实的数据环境中年龄不可能为负数,此时当我们看到age为-1的时候就知Int(String)转型失败了。 Swift提供了一种更安全的解包方式:可选绑定。...guard-let-else是Swift2.2新引入的格式,示例如下: var age:Int?
1、常量与变量 Swift中定义常量和变量非常简单,无论你想定义的是整型、浮点型、数组还是字符串,都只需使用两个关键字来进行区分。...age是个变量,所以修改age不会报错 name = "小明" //程序会报错:cannot assign to value: 'name' is a 'let' constant,提示你不能修改常量 Swift...因为这个依托于Swift强大的类型推测功能。...let count = 10 //count会被识别为Int let price = 8.8 //price会被识别为Double var message = "this is String" //message...会被识别为String 3、注释 // 单行注释 /* 多行注释 */ 4、输出 print函数可以把常量和变量输出到中控台,这个函数默认是换行的,print() 参数items
前言 微信支付的iOS的Demo真是烂,所有的参数都是后台生成传过来的,完全没参考价值,并且有的注意点文档上也没说,现在我就说一下微信支付开发中需要注意的地方 项目配置 把实例项目中的一下文件拖到项目中...timeIntervalSinceNow: 0).timeIntervalSince1970);//时间戳 req.package = "Sign=WXPay";//固定值 var dic:[String...:String] = [:]; dic["appid"] = LoadData.WX_APPID;//APPID dic["partnerid"] = LoadData.WX_PARTNERID;//商户...,String>,key:String) -> String{ var sign = ""; let dicNew = dic.sort { (a, b) -> Bool...,String)])->String{ var pars = ""; for (index, element) in dic.enumerate() {
protocol MOLocationManagerDelegate: NSObjectProtocol { func locationUpdate(_ locs:[String]) } class
Swift中的String和Objective-C语言中NSString还是区别不小的,Swift中的String又回归了正常状态,使用起来更为方便快捷。...本篇博客的主题就是Swift中的字符串类型String,String在Swift中让人省心了不少。今天这篇博客就好好的认识一下Swift中的String。 ...){ 3 4 var address = String(format: "%p", tempString) 5 6 println(address) 7 8...那么就使用as关键字来转换一下类型吧,就是把String类型通过as操作,转换成NSString类型,然后在调用NSString相应的方法(比如要获取一个字符串指定范围内的字符串时,使用NSString...字符串的东西就先到这儿,以后字啊使用Swift做开发实例时,用到Swift字符串时再做补充。
这个东西不是我写的,出自 StackOverFlow,但我觉得实在是写得太好了,于是截取了该部分分享出来,感谢原作者。
iOS XCTest单元格测试 XCTest iOS7的时候就接触了,可是一直也没用起来。起初的我觉得单元格测试纯属鸡肋,我们只能测试单个类的一个函数,还要自己判断期望的结果,进行验证。...现在iOS 11了,从新再看到XCTest和新出的XCUITest,已不是当年的一脸嫌弃和不屑了。 记住一句话存在即合理。...下面就是我从新花了1天时间学习路线(点开是链接地址): WWDC XCTest WWDC XCUITest GITHUB Demo OCMock [iOS单元测试系列]单元测试框架选型 --...testExample 测试的例子函数 testPerformanceExample 性能测试 下面XCTest 使用简单的例子 看了应该明白怎么用了 // // XCTestDemoTests.swift
值类型(比如:struct),在复制时,复制对象与原对象实际上在内存中指向同一个对象,当且仅当修改复制的对象时,才会在内存中创建一个新的对象 为了提升性能,Struct, String、Array、Dictionary...var title: String { willSet { print("willSet", newValue) } didSet { print...title) } } willSet会传递新值,默认叫newValue didSet会传递旧值,默认叫oldValue 在初始化器中设置属性值不会触发willSet和didSetswift 为什么将 String...isMemberOfClass:[SomeClass class]]// 关联值 enum Date { case digit(year: Int, month: Int, day: Int) case string...(String) }// 原始值 enum Grade: String { case perfect = "A" case great = "B" case good = "C" case
大部分语言把这个称之为 Virtual Table 虚函数表,Swift 里称为 Witness Table 。 每个类维护一个虚函数表,记录着类的所有函数。...详细可见:iOS_Objective-C 消息发送(消息查找 及 消息转发)过程 优点:最动态的方式,可以实现 KVO、UIAppearance 和 CoreData 等功能。...2.2 Class 对于一个 pure swift class: final 修饰的 和 extension 的函数:不可被继承和重写,所以都是静态派发。...@objc:是将是 swift 中 继承自 NSObject 类的函数暴露给 OC。原理:生成两个函数引用,一个给 swift 调用,一个给 objc 调用。...Performance Optimizing Swift Performance Swift 中的方法调用(Method Dispatch)(一) - 概述 Swift方法调用 Swift方法调用
附上相关项目:Swift 3.0 高仿微信