Swift,苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与Objective-C*共同运行于Mac OS和iOS平台,用于搭建基于苹果平台的应用程序。 Swift是一款易学易用的编程语言,而且它还是第一套具有与脚本语言同样的表现力和趣味性的系统编程语言。Swift的设计以安全为出发点,以避免各种常见的编程错误类别。
摘要 本文不探讨子线程、主线程、同步和异步的常规操作。只是使用DispatchWorkItem 属性来处理1.子线程切换到主线程和2.主动停止正在进行的线程这两种场景,提供一些不同的实现思路。 Dis
应用场景 在 APP 的生命周期中,可以显示提示页面或者自定义弹框时。 或者想要获取到视图的根控制器做其他处理时。 就需要先获取 Window 视图,在这个视图上做显示提示页面或者自定义弹框。 核心逻
应用场景 在项目工程中编写代码,但是需要对部分功能做区分处理(系统、设备等)。就需要使用系统的条件编译方式来处理。 API 及语言 Swift 核心逻辑/代码 主要是通过#if xx #elseif
摘要 要实现一组重复的动画,本质上就是找到动画开始点、结束点。在动画结束的时候,触发开始点,持续这样的动作。 这里面要梳理的逻辑就是1.触发开始点和2.监听动画结束点。这两个逻辑是实现重复动画的基础。
应用场景 获取动画停止或者结束的标示,并做相应的处理 API 以及语言 CABasicAnimation swift 关键代码 设置动画对象的代理 CAAnimationDelegate, 并实现它的
应用场景 自定义画圆或者圆弧。 核心逻辑/代码 使用UIBezierPath(arcCenter: CGPoint, radius: CGFloat, startAngle: CGFloat, end
应用场景 一般服务器存储时间为 UTC 时间(UTC 为世界时间),保证时间的一致性。但是对于前端显示时间的时候,就非常不友好。需要前端将 UTC 时间转换为本地时间显示。 API 以及语言 Date
应用场景 UI 页面需要显示保留 n 位小数的数据,但是目前的数据不是 String 类型。这时,就需要将这个数据转换为 String 类型。 API 及语言 String Swift 核心逻辑/代码
1. 安装 clang 编译器clang 编译器是苹果公司提供的 C 编译器,是 Swift 必需的一个组件。在终端运行下面命令执行安装sudo apt-get --assume-yes install clang或者去 Ubuntu 软件中心搜索 Clang 安装即可极客在安装Clang的时候出现过以下问题解决方法:打开Ub
我在 Swift中有一个字符串变量: let foo = "bar" 但它也可以是任何其他任意字符串.现在我想做以下事情: let bar = ... // either the value of foo, or if foo is "", it will be "default" 我抬头看“合并运算符”,看来这是正确的方向.我用以下代码尝试了它: let bar = foo ?? "defaul
在 Swift中,据我所知,闭包保留了他们的环境,而普通的功能却没有. 考虑下面的f(返回一个函数)和h(返回一个闭包). f()()和h()()都返回3.为什么f()()不会导致运行时错误? func f() -> () -> Int { let a = 3 func g() -> Int { return a } return g }
我注意到我的应用程序没有请求使用相机的权限.经过一些实验,我发现用于检查权限的代码片段需要很长时间才能完成.所以我想让我的viewdidload的那部分运行在串行队列(sync)上.在开始下一行之前强制其余部分等待auth进程完成.但这并没有真正起作用.这些行按顺序开始,但仍然没有按顺序完成. 奇怪的是,如果我只是要求权限并且不执行任何操作,没有completionHandler(如下面的代码)那
我有一些从服务器返回的数据,如下所示: let returnedFromServer = ["title" : ["abc", "def", "ghi"], "time" : ["1234", "5678", "0123"], "content":["qwerty", "asdfg", "zxcvb"
所以我打开了游乐场,我只是想添加一个简单的UIButton(或简单的UIView)用于测试目的.我不能让它显示.这是我到目前为止: import UIKit var uiButton = UIButton.buttonWithType(UIButtonType.System) as UIButton uiButton.frame = CGRectMake(0, 0, 100, 100)
我试图在 http://apps.wku.edu/iwku/maps/buildings/data/SouthCampus-Buildings.xml上解析XML 在Swift Playground中使用以下代码 import UIKit var str = "Hello, playground" class Parse: NSObject, NSXMLParserDelegate{ fun
下面是 Swift中Sprite Kit中的Enemy节点.我已经为节点设置了速度,但是当它产生时没有移动. Xcode没有给我任何错误,有什么我在这里做错了吗? class Enemy: SKSpriteNode { init(imageNamed: String) { let imageTexture = SKTexture(imageNamed: imageNam
这是我的测试代码(在终端中运行): #!/usr/bin/xcrun swift var count = 0; // for reference counting class A { init() { count++; } deinit { println("A deinit") count--; } } va
我正在尝试在文本输入字段上设置超时,该字段仅在用户停止输入后的第二秒内实现内部代码.因此,当用户键入时,我会不断调用cleartimeout并重新启动setTimeout. 我最初在Objective C中查看performSelector函数,但看起来没有Swift等价物. 然后我转到Swift中的GCD函数,寻找一种执行它的方法. 这是我想出的: var delta: Int64 = 1 *
var dict = ["alpha": ["a", "b", "c", "d"]] // output : ["alpha": ["a", "b", "c", "d"]] var alphaList = dict["alpha"] // output : {["a", "b", "c", "d"] alphaList?.removeAtIndex(1) // output : {Some "
我注意到空元组()用于表示 Swift中缺少值.例如,一个不返回任何内容的函数的签名是: func zz(){ println("zz") } 编译器也将接受上述函数的这个主体: func zz(){ println("zap") return () // returning () and returning nothing is the same thing! } 定
在我的应用程序中,我有一些NSURLConnection.sendAsynchronousRequest,但因为如果用户已禁用wifi,应用程序崩溃. 有没有办法检测wifi是否被禁用,所以我可以这样做: if(wifi is enabled) { NSURLConnection.sendAsynchronousRequest } Found the answer in this blog
我试图在 swift中将一个字节附加到NSMutable数据变量,我正在寻找一种更简单的方法.相关的 Objective-c代码将是: NSMutableData *data = [[NSMutableData alloc] init]; uint8_t number = 255; [data appendBytes:&number length:2]; 我没有发现我可以在Swift中做类似的事情
Swift的语言设计背后的原因是什么使得以下内容可以接受 [1, 2, 3, 4].map({ (number:Int)->Int in return number * 3 }) // ok 要么 [1, 2, 3, 4].map({ number in number * 3 }) // ok 要么 [1, 2, 3, 4].map({ 3 * $0 }) // ok 虽然这是不可接受的?