swift
绍棠
生活的理想就是为了理想的生活
展开
-
[绍棠] R.swift的使用和安装
一、先说说选择使用R.swift的优点 R.swift可以获取强类型、自动完成的资源,如图像、字体和段落完全类型化。更少的强制转换和猜测方法将返回什么编译时检查,运行时不再有导致应用程序崩溃的错误字符串自动完成,再也不用怀疑图片名字是不是复制错了。二、接下来说说R.swift的安装步骤1、在你的Podfile文件里面添加R.swiftpod 'R.swift'2、在终端运...原创 2019-12-11 13:17:01 · 403 阅读 · 0 评论 -
[绍棠] swift for 循环
在swift 4.2 中已经舍弃了传统的C语言的for;;循环,替换成更能符合本身语言特性的新形式。第一种 for - in这一种是最常用的,可以遍历所有的集合类。如下:func testFor(){ let list = [1,2,3,4]; for idx in list { print("idx =\(idx)"); } let...原创 2019-12-09 14:11:06 · 113 阅读 · 0 评论 -
[绍棠] Swift开发中 JSON对象/JSON字符串/Data的互转
#pragma mark - JSON(对象)----->JSON字符串// 1. 原始方法//JSON--->data--->JSON字符串let data = try? JSONSerialization.data(withJSONObject: json, options: []) let jsonString = String(data: data, en...原创 2019-12-06 11:44:11 · 3398 阅读 · 0 评论 -
[绍棠] 16进制字符串互转Data
代码extension Data { public init(hex: String) { self.init(bytes: Array<UInt8>(hex: hex)) } public var bytes: Array<UInt8> { return Array(self) } public...原创 2019-12-06 11:28:52 · 300 阅读 · 0 评论 -
[绍棠_Swift] Swift3.0中如何获取Info.plist文件信息
let APP_NAME = Bundle.main.infoDictionary!["CFBundleName"] as! Stringlet APP_VERSION = Bundle.main.infoDictionary!["CFBundleShortVersionString"] as! Stringlet kAgient = APP_NAME+APP_VERSION原创 2017-08-09 10:42:19 · 1458 阅读 · 0 评论 -
[绍棠_Swift] Swift3.0中tableviewcell分割线显示不全解决方案
override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. self.view.backgroundColor = UIColor.white if (homeTabble原创 2017-08-04 15:31:09 · 451 阅读 · 0 评论 -
[绍棠_Swift] Swift中使用Base64编解码
/// swift Base64处理 /** * 编码 */ func base64Encoding(plainString:String)->String { let plainData = plainString.data(using:String.Encoding.原创 2017-08-11 14:15:02 · 8373 阅读 · 1 评论 -
[绍棠_Swift] Swift3.0中可能用到的第三方框架
下拉刷新BreakOutToRefresh 一个下拉刷新打砖块的swift库SDRefreshView 简单易用的上拉和下拉刷新ZLSwiftRefresh - 下拉刷新/上拉加载更多,支持自定义动画,集成简单GearRefreshControl - 一个非常精细的下拉刷新 做的很细心refresher - 简洁清爽的下拉刷新PullToBounce - 弹性动画 非常炫酷的下拉刷新RCT原创 2017-08-04 13:47:05 · 240 阅读 · 0 评论 -
[绍棠_Swift] Swift3.0中的Alamofire网络请求的封装
import Foundationimport UIKitimport Alamofireimport SwiftyJSONprivate let NetworkRequestShareInstance = NetworkRequest()class NetworkRequest { class var sharedInstance : NetworkRequest {原创 2017-08-04 13:43:25 · 895 阅读 · 2 评论 -
[绍棠_Swift] Swift3.0中的GCD
dispatch_async一个常见的场景就是在一个全局队列进行一些操作后切换到主线程配置UI。现在是这么写:DispatchQueue.global().async { // code DispatchQueue.main.async { // 主线程中 }}global()是一个有着默认参数的静态函数:class DispatchQ转载 2017-08-23 09:51:42 · 200 阅读 · 0 评论 -
[绍棠_Swfit] 报错Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/
一. 第一种情况解决方法:在build Setting中, 将Apple LLVM compiler 8.1-Language中的c++Standard Library 修改为 libstdc++(GNU C++ standard library)二. 第二种情况文件冲突在Build Phase--> Complie Sources中找大奥有两个xxx.m文件, 一个正原创 2017-08-28 11:15:17 · 5016 阅读 · 0 评论 -
[绍棠] 开发小技巧之--WeakSelf宏的进化
我们都知道在防止如block的循环引用时,会使用__weak关键字做如下定义:__weak typeof(self) weakSelf = self;11后来,为了方便,不用每次都要写这样一句固定代码,我们定义了宏:#define WeakSelf __weak typeof(self) weakSelf = self;11之后,我们可以比较方便的在需要的地方:Weak转载 2017-09-02 12:57:02 · 430 阅读 · 0 评论 -
[绍棠_Swift] Swift - 动画效果的实现方法总结(附样例)
在 iOS 中,实现动画有两种方法。一个是统一的 animate,另一个是组合出现的 beginAnimations 和 commitAnimations。这三个方法都是类方法。一,使用 animate 来实现动画(1)此方法共有5个参数:withDuration:动画从开始到结束的持续时间,单位是秒delay:动画开始前等待的时间options:动画执转载 2017-10-20 13:40:50 · 1553 阅读 · 0 评论 -
[绍棠_Swift] swift4.0 NSMutableAttributeString的Range和NSRange问题
Range是无法通过 as? 强制转换到NSRange的。强制转换会crash Thread 1: EXC_BREAKPOINT (code=1, subcode=0x1000b4488)var mutableAttrStr =NSMutableAttributedString.init() // range 不能用as? 强制转换原创 2017-11-09 10:09:58 · 1164 阅读 · 0 评论 -
RxSwift 个人学习笔记记录
文章目录一 什么是RxSwift 二 RxSwift做了什么 2-1简单介绍观察者设计模式 2-1RxSwift做了什么 2-3 简单理解Observable&Observer 三 RxSwift初级操作 3-1 监听事件 3-2 监听文本输入框的文字改变 3-3 绑定数据赋值操作 3-4 KVO 四 RxSwift常见操作 4-1 neve...原创 2019-04-23 16:04:02 · 476 阅读 · 0 评论 -
[绍棠] SwiftyJSON的使用详解
1,SwiftyJSON介绍与配置SwiftyJSON是个使用Swift语言编写的开源库,可以让我们很方便地处理JSON数据(解析数据、生成数据)。GitHub地址:https://github.com/SwiftyJSON/SwiftyJSON使用配置:直接将SwiftyJSON.swift添加到项目中即可。2,SwiftyJSON的优点同JSONSerializat...转载 2019-05-16 09:51:24 · 236 阅读 · 0 评论 -
[绍棠_Swift] Swift3.0中guard语句的使用和理解
和if一样,guard是基于一个表达式的布尔值去判断某些代码是否该被执行,和if不一样的地方是,guard只有在条件不满足(布尔值==false时)才会执行,类似反if。通过伪代码来直观的感受一下首先由一个可选类型,然后判断x是否存在并且大于0,当条件成立执行一些代码第一种 oc写法var x:int?if x == nil | x return }原创 2017-08-03 17:30:05 · 586 阅读 · 0 评论 -
[绍棠_Swift] Swift3.0中Get、Post的同步与异步请求
一、介绍Get和Post区别:Get是从服务器上获取数据,Post是向服务器发送数据。对于Get方式,服务端用Request.QueryString获取变量的值,对于Post方式,服务端用Request.From获取提交的数据。Get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内的各个字段一一对应。Post是通过HTTP Post机原创 2017-08-03 16:44:06 · 587 阅读 · 0 评论 -
[绍棠_swift] Swift3.0的学习枚举、断言、函数嵌套
//// ViewController.swift// Learn_Swift_2//// Created by Coco on 2017/7/20.// Copyright © 2017年 Coco. All rights reserved.//import UIKittypealias Config原创 2017-07-21 13:43:51 · 367 阅读 · 0 评论 -
[绍棠_Swift] Swift中的@noescape @escaping @autoclosure
@noescape 非逃逸闭包当闭包作为参数传递进函数时,如果这个闭包只在函数中被使用,则开发者可以将这个闭包声明成非逃逸的,即告诉系统当此函数结束后,这个闭包的生命周期也将结束,这样做的好处是可以提高代码性能,将闭包声明成非逃逸的类型使用@noescape关键字。(1) 默认,swift 3.0 弃用,函数结束后,这个闭包的生命周期也将结束。(2) 在其内部如果需要使用self这原创 2017-07-31 10:44:35 · 374 阅读 · 0 评论 -
[绍棠_Swift] Swift中的回调传值
第一个VCimport UIKitclass ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() let secondViewController = SecondViewController() secondViewC原创 2017-07-31 11:04:30 · 527 阅读 · 0 评论 -
[绍棠_swift] swift 中#pragma mark 表示方法
大家在OC中对代码进行逻辑组织 用的是#pragma mark - ,生成分隔线用#pragma mark 函数说明,来生成一个函数的说明X但在Swift中,这个语法就不支持了,毕竟它是属于C的语法,于是就有了新的一些语法,如:// MARK: // FIXME // TODO: 等// MARK: - 生成分隔线// MARK: 说明别忘了那个冒号原创 2017-07-19 14:53:54 · 686 阅读 · 0 评论 -
[绍棠_Swift] Swift3.0中自定义导航栏后侧滑返回功能失效
从iOS7开始,系统为UINavigationController提供了一个interactivePopGestureRecognizer用于右滑返回(pop),但是,如果自定了当前视图控制器leftBarButtonItem,该手势就失效了。解决方法:自定义UINavigationController,实现其代理方法:// 自定义导航控制器import UIK原创 2017-08-08 12:09:43 · 1134 阅读 · 0 评论 -
[绍棠_Swift] Swift3.0笔记整理
1.在swift3.0中方法的返回值必须要有接收,否则会报警或者报错,即使提醒开发者需要接收方法的返回值,当我们不需要接收返回值时,我们有两种方法告诉编译器此方法可以不用接收方法的返回值override func viewDidLoad() { super.viewDidLoad() // 方式一:需要@discardableRe原创 2017-08-01 17:42:02 · 356 阅读 · 0 评论 -
[绍棠_swift] Swift中的继承、构造器
//// ViewController.swift// Learn_Swift_4//// Created by Coco on 2017/7/24.// Copyright © 2017年 Coco. All rights reserved.//import UIKitclass ViewContro原创 2017-07-24 16:20:03 · 373 阅读 · 0 评论 -
[绍棠_Swift] Swift3.0中别的类获取APPDelegate及UITabbarViewController的自定义
let appDelegate: AppDelegate = UIApplication.shared.delegateas! AppDelegate自定义tabbarcontrollerextension BYMainTabBarController { fileprivatefunc setUpChildViewCo原创 2017-08-02 11:40:50 · 1555 阅读 · 0 评论 -
[绍棠_Swift] Swift3.0中使用CocoaPods导入的第三方库
在用Swift写项目时,需要用CocoaPods引入SDWebImage这个三方库,于是开始在Vim命令中创建pod file,在创建之前需要cd到当前项目的目录中,Podfile创建步骤如下:1、创建Podfile:touch Podfile2、编辑Podfile文件:vim Podfile 按 i 进入编辑状态,编辑完成后按Esc退出编辑状态,然后输入:wq 返回,原创 2017-08-02 14:39:07 · 2186 阅读 · 0 评论 -
[绍棠_Swift] Swift中扩展extension、协议protocol
//// ViewController.swift// Learn_Swift_5//// Created by Coco on 2017/7/24.// Copyright © 2017年 Coco. All rights reserved.//import UIKit// MARK:- 扩展原创 2017-07-25 11:13:46 · 418 阅读 · 0 评论 -
[绍棠_swift] swift的简单学习(字符串、4元组、类型转换及运算)
func swiftLearn1() { // 一、字符串 var string1 ="hello" string1 +="you" var string2 =" there" let r1:Character ="!" var r2:Character ="?" var stringPlusCh原创 2017-07-20 15:37:00 · 669 阅读 · 0 评论 -
[绍棠_Swift] SwiftyJSON的使用详解(附样例,用于JSON数据处理)
1,SwiftyJSON介绍与配置SwiftyJSON是个使用Swift语言编写的开源库,可以让我们很方便地处理JSON数据(解析数据、生成数据)。GitHub地址:https://github.com/SwiftyJSON/SwiftyJSON2,SwiftyJSON的优点同 JSONSerializationSwiftyJSON 相比,在获取多层次结构的JSON数据时。Swif原创 2017-08-10 09:40:10 · 2430 阅读 · 0 评论 -
[绍棠_Swift] 怎样在Swift项目中引入CommonCrypto库
方法一:借助modulemap1.创建modulemap文件modulemap filesmodule CCommonCrypto [system] { header "/Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVO原创 2017-07-25 17:54:44 · 3311 阅读 · 0 评论 -
[绍棠_Swift] Swift3.0中 通过viewController push跳转到TabbarController 隐藏后退按钮问题
方法一: @objcfileprivate func loginBtnAction(sender:UIButton) { let bYTabBar =BYMainTabBarController()// self.present(bYTabBar, animated: true, completion: nil)原创 2017-08-03 11:11:59 · 1007 阅读 · 0 评论 -
[绍棠_Swift] Swift中类和结构体的区别
类和结构体有许多相同之处,也有许多不同之处。二者区别如下:1,类可以继承,结构体不可以2,可以让一个类的实例来反初始化,释放存储空间,结构体做不到3,类的对象是引用类型,而结构体是值类型。所以类的赋值是传递引用,结构体则是传值。相同点:1,类和结构体都可以扩展2,定义属性用于储存值3,定义方法用于提供功能4,定义下标用原创 2017-08-10 16:29:13 · 322 阅读 · 0 评论 -
[绍棠_swift] Swift中assert(断言)的使用
通过assert实现断言,assert可以帮助开发者比较容易的发现和定位错误一个断言断定条件是true.通过声明一个断言来确保某个必要的条件是满足的,以便继续执行接下来的代码。如果条件满足了,那么代码像往常一样执行,如果不满足了,代码就停止执行了,应用也随之停下来了。例如: /// 断言 var a = 10 assert原创 2017-07-20 17:52:45 · 556 阅读 · 0 评论