
iOS-Swift
文章平均质量分 72
Swift
MinggeQingchun
这个作者很懒,什么都没留下…
展开
-
Swift-Class和Struct的区别(结构体和类的区别)
返回上级目录:swift,oc语法(苹果文档)和对比苹果官方文档介绍:Structures and ClassesChoosing Between Structures and Classes文章中的代码基于swift5.2.4文章目录1.struct会自动生成需要的构造方法(constructor),哪个属性没有赋初始值就会生成以哪个属性为参数的构造方法。而class没有,要自己写2.struct的属性可以不赋初始值,而class的属性必须赋初始值或者设为可选类型,下面也是可以的,区别只转载 2021-07-06 21:09:00 · 1881 阅读 · 0 评论 -
Swift-iOS中类和结构体
一、简书类和结构体1、类(Class)类(Class)是面向对象程序设计实现信息封装的基础。类是一种用户定义类型,也称类类型。每个类包含数据说明和一组操作数据或传递消息的函数。类的实例称为对象。类是面向对象程序设计中的概念,是面向对象编程的基础。类的实质是一种数据类型,类似于int、char等基本类型,不同的是它是一种复杂的数据类型。因为它的本质是类型,而不是数据,所以不存在于内存中,不能被直接操作,只有被实例化为对象时,才会变得可操作。类是对现实生活中一类具有共同特征的事物的抽象。如果一个程序里提原创 2021-07-06 21:09:55 · 508 阅读 · 3 评论 -
Swift-SWIFT_VERSION ‘3.0‘ is unsupported, supported versions are: 4.0, 4.2, 5.0.
报错如下:SWIFT_VERSION '3.0' is unsupported, supported versions are: 4.0, 4.2, 5.0.Build Setting中把Swift Language Version下改为Swift 4或者5即可原创 2021-04-28 22:17:22 · 1785 阅读 · 0 评论 -
iOS-Null passed to a callee that requires a non-null argument警告
也不是报错吧,只是一个警告,但强迫自己必须处理掉Null passed to a callee that requires a non-null argument此警告就是某属性说好的不能为空,你又在某地方写了XX = nil 所以冲突了这个警告比较新,是xcode6.3开始 为了让OC也能有swift的?和!的功能,你在声明一个属性的时候加上 __nullable(?可以为空)与_...原创 2020-05-08 16:58:09 · 4732 阅读 · 0 评论 -
Swift3.0- 类型转换、Any、AnyObject(可选链)
Swift3.0- 类型转换、Any、AnyObject(可选链)/* * 类型转换*/print("\n可选链--类型转换")class Entitys{//角色原型 var name = "" init(entityName:String) { name = entityName } func showTag() { }}原创 2017-01-16 13:08:23 · 2853 阅读 · 0 评论 -
Swift3.0-函数和控制语句
Swift3.0-函数和控制语句函数 : (函数思想:在程序开发过程中,某些逻辑处理会被经常使用,或者在处理复杂问题时,需要将独立的功能模块提取出来,供其它地方使用,这就是函数的思想) 函数语法如下: func函数名(参数名:参数类型,参数名:参数类型...)->函数返回值类型{ 函数代码块... } Sw原创 2017-01-12 17:57:40 · 648 阅读 · 0 评论 -
Swift3-Type 'String' does not conform to protocol 'Sequence'
遍历字符串时出错如下:Type 'String' does not conform to protocol 'Sequence' 这是由于在swift3中修改了,改为如下写法://Swift语言中,字符串中可以加入任何语言文字的字符//遍历字符串var str:String = "Hello,Swift,原创 2017-01-12 12:07:12 · 3700 阅读 · 0 评论 -
Swift3.0-字符串、数组、字典操作
Swift3.0-字符串、数组、字典操作import Foundation/* * 1、字符串 */print("1、字符串")//Swift语言中,字符串中可以加入任何语言文字的字符//遍历字符串var str:String = "Hello,Swift,原创 2017-01-12 15:32:17 · 1579 阅读 · 0 评论 -
Swift-面向对象,元组,重写,继承,构造,可选值
面向对象,元组,重写,继承,构造,可选值//面向对象class Hi { func sayHi() { print("--面向对象\nHi,ming") }}//继承class Hello: Hi { var name:String //构造方法 init(name:String) { self.name原创 2016-11-25 09:27:46 · 630 阅读 · 0 评论 -
Swift3中的新特性
Swift 3中的新特性2016-07-12 19:32 编辑: cocopeng 分类:Swift来源:CocoaChina20 12399 Swift 3原文:What's New in Swift 3? ,作者:Ben Morrow,译者:kmyhySwift 3将于今年下半年推出,为Swift开发者们带来了很多核心代码的改转载 2017-01-12 10:01:07 · 688 阅读 · 0 评论 -
Swift-新建文件报错:No such module 'Cocoa'
其实从import cocoa我们应该能看出,这不是iOS中的,iOS是基于UIKit的,而OS X才是基于Cocoa的原创 2017-01-11 14:41:40 · 2018 阅读 · 0 评论 -
Swift3.0- 协议(protocol)
Swift3.0- 协议(protocol)代理,委托/* * Protocol协议 (接口Interface或者纯虚函数) 协议用于统一方法和属性的名称,而不实现任何功能(使用代理设计模式) 协议能够被类、枚举、结构体实现,满足协议要求的类、枚举被称为协议实现者 实现者需要提供协议指定的成员,如属性、操作符、方法和下表等 */protocol SomeProtocol{原创 2017-01-18 22:20:27 · 3092 阅读 · 0 评论 -
Swift3-基础语法
Swift和Objective-C语言对比:Swift语言是对OC语言的一个优雅的包装,底层还是使用Cocoa Touch,Foundation框架,只是语言上让开发变得容易。严格来讲,OC并不是一个独立的面向对象语言,它只是在C语言上层加上了一层轻度面向对象的外壳。Swift的新特性:(1)函数使用()和点调用语法(2)函数标签特性(3)严格的类型检查(非常安全)原创 2017-01-12 12:00:04 · 717 阅读 · 0 评论 -
Swift3.0-闭包、运算符重载
闭包(Closure) 自包含的函数代码块,可以在代码中被传递和调用 闭包可以捕获和存储其所在上下文中任意常量和变量的引用 闭包表达式: { (parameters) -> returnType in statements } 闭包可以使用常量、变量、inout类型作为参数,不提供默认值;元祖也可以作为参数原创 2017-01-19 14:22:22 · 996 阅读 · 0 评论 -
Swift3.0- swift中的问号"?"和感叹号"!"语法
04 June 2014Swift语言使用var定义变量,但和别的语言不同,Swift里不会自动给变量赋初始值,也就是说变量不会有默认值,所以要求使用变量之前必须要对其初始化。如果在使用变量之前不进行初始化就会报错:var stringValue : String //error: variable 'stringValue' used before being init转载 2017-10-10 15:47:58 · 613 阅读 · 0 评论 -
Swift3.0-UserDefaults保存数据
Swift3.0-UserDefaults保存数据UserDefaults 是在工程编译完成后在沙盒中产生的plist文件,所以使用UserDefaults保存文件时,必须保存基本数据类型,其中数组和字典保存的对象也必须是基本数据类型,不能保存自定义的类的对象UserDefaults 适合用来存储数据量相对较小的数据,因为操作plist文件,读写相对耗时写入值步骤: 1、打原创 2017-02-03 16:58:30 · 2736 阅读 · 0 评论 -
Swift3.0-反向传值
Swift3.0-反向传值1、使用代理协议在ViewController.swift中class ViewController: UIViewController,SubDelegate { override func viewDidLoad() { super.viewDidLoad()// setNavigation() m原创 2017-02-03 16:21:52 · 2356 阅读 · 0 评论 -
Swift3.0-视图控制器的生命周期
Swift3.0-视图控制器的生命周期原创 2017-02-03 14:07:47 · 1808 阅读 · 0 评论 -
Swift3.0-UITextField创建以及使用
UITextField创建以及使用class ViewController: UIViewController,UITextFieldDelegate { override func viewDidLoad() { super.viewDidLoad() myTextField() //获得所有字体名称原创 2017-02-03 13:40:48 · 1179 阅读 · 0 评论 -
Swift3.0-UILabel、UIButton、UIImageView创建以及使用
UILabel、UIButton、UIImageView创建以及使用class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() myLabel() myView() myImageView()原创 2017-02-03 12:54:45 · 3435 阅读 · 0 评论 -
Swift3-CGRectMake在Xcode8上'CGRectMake' is unavailable in Swift
使用Xcode8创建UILabel并给出一个坐标时,这时报错提示:'CGRectMake' is unavailable in Swift,在网上找了很多创建label的代码,之前一直使用的都是CGRectMake方法,但是在此错误是CGRectMake是不可用的,因此只能自力更生。 首先查看了一下frame,发现其参数改为了CGRect,接着往下一级一原创 2017-01-11 16:33:03 · 7443 阅读 · 3 评论 -
Swift和Objective-C交互
Swift是对OC的一个优雅的包装,所有的底层库、框架都是使用OC来实习的。所以Swift可以无缝的和Cocoa、OC兼容调用。Swift通过和OC兼容,就可以在Swift程序中大量使用OC API函数。尽管Swift和OC可以相互调用,但是在真实项目中,Swift调用C/C++要常见,因为采用Swift开发,必然要采用大量的稳定的OC开源库首先,就先来说说Swift是如何调用OC文件的原创 2017-01-20 09:38:03 · 894 阅读 · 0 评论 -
Swift3-创建Playground
Playground是随着Swift推出的“所见即所写”的编程模式,大致意思就是边写代码边预览编程效果。接下来具体说明一下创建Playground具体流程。在此之前,需要注意:Swift是苹果2014年WWDC大会推出来的新语言,因此Xcode6以上才能支持Swift编程语言。1、打开Xcode,单击Get started with a playground,创建了一个Playground项目原创 2017-01-11 15:13:18 · 1069 阅读 · 0 评论 -
Swift-构造方法
构造方法/* 1、构造方法 构造方法主要作用:实例对象的内容的初始化(给存储属性设置初始值) 隐式调用 Swift要求类或者结构体中的存储属性在对象构造完毕后要有初始值 构造方法的语法: init(参数列表) { 初始化代码 } */print("1、构造方法")/* 2、带有缺省值的构造方法 构造完一个原创 2016-12-28 16:43:11 · 646 阅读 · 0 评论 -
Swift-闭包
闭包表达式 { (参数) ->返回值类型 in 执行语句 }/* 1、 闭包表达式 { (参数) -> 返回值类型 in 执行语句 } */print("1、 闭包表达式")let sayHello = { print("hello")}sayHello()let add:(Int,Int) -> Int = {原创 2016-11-25 10:14:51 · 527 阅读 · 0 评论 -
Swift-枚举关联值以及提取
枚举关联值以及提取/* 3、枚举关联值 */print("\n3、枚举关联值")enum LineSegmentDes { case StartAndPattern(start:Double,end:Double) case StartAndLength(start:Double,length:Double)}var les = LineSegmentDes.Sta原创 2016-11-25 16:31:05 · 2366 阅读 · 0 评论 -
Swift-结构体的实例变量以及成员方法,结构体与类的区别
结构体的实例变量以及成员方法/* 1、结构体定义,实例和属性访问 struct Rect-C { Double width; Double height; }; */print("1、结构体定义")struct Rect { var width:Double = 0.0 var height:Double = 0.0 //成员方法可以访问使用原创 2016-11-28 11:54:36 · 1266 阅读 · 0 评论 -
Swift-存储属性
存储属性/* 1、存储属性 2、常量存储属性 */print("1、存储属性")class Person { let name:String = "zhang" var age:Int = 16}//结构体常量对象,它本身是一个常量,其次对应的对象不可以被修改//类常量对象,它本身是一个常量,其次它对应的对象,可以通过它来进行修改//结构体或者枚举类型:值引用原创 2016-11-28 15:14:55 · 533 阅读 · 0 评论 -
Swift-存储属性
存储属性/* 1、存储属性 2、常量存储属性 */print("1、存储属性")class Person { let name:String = "zhang" var age:Int = 16}//结构体常量对象,它本身是一个常量,其次对应的对象不可以被修改//类常量对象,它本身是一个常量,其次它对应的对象,可以通过它来进行修改//结构体或者枚举类型:值原创 2016-11-28 15:15:17 · 523 阅读 · 0 评论 -
Swift-计算属性
计算属性/* 5、计算属性(1)Swift中计算属性不直接存储值,跟存储属性不同,没有任何的“后端存储与其对应”(2)计算属性用于计算,可以实现setter和getter两种计算方法(3)枚举不可以有存储属性,但是允许有计算属性 对象.属性 = 值 setter let value = 对象.属性 getter */print("5、计算属性")原创 2016-12-04 22:05:41 · 1420 阅读 · 0 评论 -
Swift-实例方法
实例方法/* 1、实例方法 */print("1、实例方法")class MyPoint { var myX:Double = 0.0 var myY:Double = 0.0 func setPoint(x:Double,y:Double) { myX = x myY = y } func showPo原创 2016-12-13 22:35:47 · 548 阅读 · 0 评论 -
Swift-继承、重写
继承、重写/* 1、继承语法 继承是面向对象最显著的一个特征。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。 术语:基类(父类,超类),派生类(子类,继承类) swift继承语法: class ChildClass:FatherClass{ } 继承优点:代码重用 继承缺点:增加程序耦合度,父类改变会影响子类 swift没有多继承(单继原创 2016-12-25 21:06:21 · 629 阅读 · 0 评论 -
Swift-指定构造方法和便利构造方法
指定构造方法和便利构造方法/* 1、指定构造方法和便利构造方法(Designated Initializer and Convenience Initializers) 便利构造:类类型(针对类class) */print("1、指定构造方法和便利构造方法")class AB { var a:Int var b:Int //指定构造方法,不允许出现构造代理器,原创 2017-01-06 17:40:25 · 2393 阅读 · 2 评论 -
Swift-内存管理(初级)
Swift-内存管理(初级)/* Swift 内存管理(只有ARC模式,没有MRC模式,不需要手动管理内存,系统自动管理) *//* 3、Swift语言内存管理 (1)内存管理对象:引用类型对象(class类型) (2)内存管理原则:没有任何引用指向某个对象的时候,系统会自动销毁该对象 (3)通过ARC技术实现 */print("\n3、Swift语言内存管理")原创 2017-01-08 20:53:08 · 495 阅读 · 0 评论 -
Swift-函数操作
函数语法如下:func函数名(参数名:参数类型,参数名:参数类型...)->函数返回值类型{ 函数代码块... swift函数调用方法: 函数名(实际参数...) }/* 1、函数 func 函数名(参数名:参数类型,参数名:参数类型...)-> 函数返回值类型{ 函数代码块... swift函数调用方法: 函数名(实原创 2016-11-25 10:07:49 · 623 阅读 · 0 评论 -
Swift-数组、字典、Slice操作
数组、字典、Slice操作/* 1、数组 数组中可以存放不同类型数据 *///Any关键字 :泛指数组中的各种数据类型var arr1:Array = ["ming",12,2.3]print(arr1)/* 2、数组插入或者增加 */print("\n2、数组插入或者增加")var arr2 = ["a","b"]arr2.append("c")arr2.inse原创 2016-11-25 09:38:36 · 1018 阅读 · 0 评论 -
Swift3.0-类(class)
类 (class关键字) !!!引用类型 类是对一些具有相同属性和方法的具体食物的抽象;对象是类的具体实现 类的对象是指针的引用,赋值也只是创建一个指针对象,指向同样的内存区域。而值拷贝是完全不同的拷贝一份对象,和源对象截然不同。 类的两个主要内容:属性 和方法 属性:所有类的对象所具有的共同特性或者类本身的属性 方法:类的对象所能做出的原创 2017-01-15 16:33:41 · 666 阅读 · 0 评论 -
Swift3.0-继承、构造、类扩展
/* * 继承(inherit) 单向关系 1、定义:某个类通过继承语法而获取另一个类的属性和方法。 2、最大好处:实现代码复用(父类中的属性和方法可以被子类直接使用),子类还可以拓展父类的方法和属性 3、缺点:增加了程序“耦合性”(如:父类发生改变,子类代码可能需要重新构造,相关代码也需要重新编译) 4、Swift中只有单继承(通过“扩展”和“协议”实原创 2017-01-15 21:43:13 · 907 阅读 · 0 评论 -
Swift3.0-枚举(enum)和结构体(struct)
Swift3.0-枚举(enum)和结构体(struct)/* * 1、枚举 (enum关键字) 枚举是一种基本数据类型 */print("1、枚举")enum Toward1:Int { case Forward,Back,Left,Right //默认赋值从0开始,且依次+1}//rawValue将枚举值转换为原始值print(Toward1.Left.raw原创 2017-01-13 12:11:33 · 2153 阅读 · 0 评论 -
Swift-可选类型和可选链
可选类型以及可选链/* 可选链 - Optional Chaining */import Foundation/* 1、深入研究可选类型 */print("1、深入研究可选类型")//有值,没有值nil,可选类型有两种状态var opa:Optional //Optional--enum类型var opb:Int?//基本类型变量,必须在使用之前先进行初始化原创 2017-01-10 17:17:20 · 516 阅读 · 0 评论