//-------------------
var totalPrice: Int = {
willSet(newTotalPrice) { //参数使用new+变量名且变量名首地址大写
println("准备将totalPrice值(原值为:\(totalPrice))设为: \(newTotalPrice)")
//to do somthing before set. } didSet {
if totalPrice > oldValue {
println("设置后新值比旧值增加了\(totalPrice - oldValue)") } } }
准备将totalPrice值(原值为:)设为:
设置后新值比旧值增加了5 /使用#来把变量名提升了具有外部参数名作用的变量名,这样就不用再写一次外部参数名(在外部参数名与变量名相同时使用)
func setComputerConfig(#cpu:String,disk:String,mem:String,mon:String)
{ } 多参数方法
func addNumbers(numbers: Int...) ->Int {
var totle =
for number in numbers {
totle += number
}
return totle
} 常量参数
func constantParameter(var version: String) -> String {
version = "版本号是:" + version
return version;
}
var version = "4.0.0"
var ver = constantParameter(version)
println(ver)
println(version)
版本号是:4.0.
4.0. //函数作为返回值
func testfunctionReturn(instruction : String) -> (Int,Int) -> Int
{
func Multiplication(a:Int,b:Int) ->Int
{
return a * b
} return Multiplication
} //自动闭包类型
//调用simpleAssert(testNumber % 2 == 0, "testNumber isn't an even number.")
func simpleAssert(condition: () -> Bool, message: String) {
if !condition() {
println(message)
}
} 用来声明的:
“ class, deinit, enum, extension, func, import, init, let, protocol, static, struct, subscript, typealias, var.”
用于子句的:
“ break, case, continue, default, do, else, fallthrough, if, in, for, return, switch, where, while.”
表达式和类型的:
“ as, dynamicType, is, new, super, self, __COLUMN__, __FILE__, __FUNCTION__, __LINE__”
//特殊语境使用的:
“didSet, get, inout, mutating, override, set, unowned, unowned(safe), unowned(unsafe), weak , willSet”
http://blog.csdn.net/fengsh998/article/details/32133809
通知
NSNotificationCenter.defaultCenter().postNotificationName("Notification1", object: nil) private var observer : NSObjectProtocol! observer = NSNotificationCenter.defaultCenter().addObserverForName("Notification1", object: nil, queue: NSOperationQueue.mainQueue(), usingBlock: { (note:NSNotification!) -> Void in
self.contentChangeNotification(note)
});
private extension ViewController {
func contentChangeNotification(notification: NSNotification) {
println("")
var text = btn.titleLabel!.text! as NSString
if text.isEqualToString("打开") {
self.navigationItem.prompt = nil
btn.setTitle("关闭", forState: .Normal) } else {
self.navigationItem.prompt = "测试显示";
//演示1 s 执行
let popTime = dispatch_time(DISPATCH_TIME_NOW, Int64(1.0 * Double(NSEC_PER_SEC)))
dispatch_after(popTime, dispatch_get_main_queue(), { () -> Void in
self.navigationItem.prompt = "测试显示";
});
}
} } GCD
async表明异步运行,block代表的是你要做的事情,queue则是你把任务交给谁来处理了
dispatch_async(dispatch_queue_t queue, dispatch_block_t block);
dispatch_async(dispatch_get_global_queue(Int(QOS_CLASS_UTILITY.value), ), { () -> Void in
var url = NSURL(string: "http://s.qdcdn.com/cl/10911573,800,450.jpg")
var imgData = NSData(contentsOfURL: url!)
dispatch_async(dispatch_get_main_queue(), { () -> Void in
imageView.image = UIImage(data: imgData!)
}); }); 线程队列,串行队列,会依次执行,
var myQueue = dispatch_queue_create("com.inlee.ce0", DISPATCH_QUEUE_SERIAL) dispatch_async(myQueue, { () -> Void in
println("")
var url = NSURL(string: "http://img.lanrentuku.com/img/allimg/1311/13853799337947.jpg")
var imgData = NSData(contentsOfURL: url!)
dispatch_async(dispatch_get_main_queue(), { () -> Void in
imageView.image = UIImage(data: imgData!)
});
}); dispatch_async(myQueue, { () -> Void in
println("")
var url = NSURL(string: "http://img.lanrentuku.com/img/allimg/1311/13853799337947.jpg")
var imgData = NSData(contentsOfURL: url!)
if (imgData != nil){
dispatch_async(dispatch_get_main_queue(), { () -> Void in
imageView2.image = UIImage(data: imgData!)
}); }
}); dispatch_async(myQueue, { () -> Void in
println("")
var url = NSURL(string: "http://media.vector4free.com/normal/chick.jpg")
var imgData = NSData(contentsOfURL: url!)
if (imgData != nil){
dispatch_async(dispatch_get_main_queue(), { () -> Void in
imageView3.image = UIImage(data: imgData!)
}); } }); 并行队列
Concurrent queue(global dispatch queue):
可以同时运行多个任务,每个任务的启动时间是按照加入queue的顺序,结束的顺序依赖各自的任务.使用dispatch_get_global_queue获得. var myQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, )
dispatch_async(myQueue, { () -> Void in
NSThread.sleepForTimeInterval()
println("")
});
dispatch_async(myQueue, { () -> Void in
NSThread.sleepForTimeInterval()
println("")
});
dispatch_async(myQueue, { () -> Void in
NSThread.sleepForTimeInterval()
println("")
}); http://blog.csdn.net/wildfireli/article/details/18668897
dispatch_group_async的使用
var queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, )
var group = dispatch_group_create()
dispatch_group_async(group, queue, { () -> Void in
NSThread.sleepForTimeInterval()
println("")
}); dispatch_group_async(group, queue, { () -> Void in
NSThread.sleepForTimeInterval()
println("")
}); dispatch_group_async(group, queue, { () -> Void in
NSThread.sleepForTimeInterval()
println("")
}); dispatch_group_notify(group, dispatch_get_main_queue(), { () -> Void in
println("完成!")
}); 完成!
map
//map函数可以让我们表达我们想要实现的目标的同时不用关心它背后发生了什么,这可以减轻我们理解代码的难度 let numbers = [,,]
let doubledNumbers = numbers.map {$ * }
println(doubledNumbers)
[, , ]
//--------
let num = Optional()
println(num)
let transNum = num.map {$ * }.map {$ % == }
println(transNum)
Optional()
Optional(true)
//———
func map< U>(transformFunction: T -> U) -> Container< U>
T是当前的元素类型,U是将要返回的元素类型。通过这种方法我们可以实现诸如将一个字符串数组的每个字符串长度映射到一个整型数组中。
//------------
let jsArr = ["abc", "", "n", "klomj"]
let jsArr2 = jsArr.map {$.uppercaseString}
let jsArr3 = jsArr.map {($ as NSString).length}
println(jsArr2)
println(jsArr3)
[ABC, , N, KLOMJ]
[, , , ] swift 异常处理
NSSetUncaughtExceptionHandler(<#CFunctionPointer<NSUncaughtExceptionHandler>#>) NSSetUncaughtExceptionHandler(exceptionHandlerPtr) //———
需要新建一个OC类,桥架该头文件
// volatile的作用: 作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值.
//关键字“extern”,表示此函数是外部函数 @interface ExceptinHandler : NSObject
volatile void exceptionHandler(NSException *exception);
extern NSUncaughtExceptionHandler *exceptionHandlerPtr;
@end
#import "ExceptinHandler.h"
@implementation ExceptinHandler
volatile void exceptionHandler(NSException *exception) {
// Do stuff
}
NSUncaughtExceptionHandler *exceptionHandlerPtr = &exceptionHandler;
@end id方法
private struct Constants {
static let sharedManager = LocationManager()
} public class var sharedManager: LocationManager {
return Constants.sharedManager
} //
class var sharedInstance: LibraryAPI {
//
struct Singleton {
//
static let instance = LibraryAPI()
}
// 静态常量的声明
类似OC中 #define
public struct HUDAssets {
public static let rotationLockImage = HUDAssets.bundledImage(named: "rotation_lock")
internal static func bundledImage(named name: String) -> UIImage {
let bundleIdentifier = "com.NSExceptional.PKHUD"
return UIImage(named: name, inBundle: NSBundle(identifier: bundleIdentifier), compatibleWithTraitCollection: nil)!
}
}
调用
HUDAssets.ringerMutedImage public struct Tool {
public static let greenColor = UIColor(red: 35.0/255.0, green: 153.0/255.0, blue: 73.0/255.0, alpha: 0.8)
} 属性的set/get
public var userInteractionOnUnderlyingViewsEnabled: Bool {
get {
return !window.userInteractionEnabled
}
set {
window.userInteractionEnabled = !newValue
}
} private let backgroundView: UIView = {
let view = UIView()
view.backgroundColor = UIColor(white:0.0, alpha:0.25)
view.alpha = 0.0;
return view;
}()
//
private var currentAlbumData : (titles:[String], values:[String])?
if (currentAlbumData != nil) {}
可以改成
if let albumData = currentAlbumData {}
UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName:UIColor.whiteColor(), NSFontAttributeName:UIFont(name: "AvenirNextCondensed-DemiBold", size: 22.0)!]

Swift 使用 日常笔记的更多相关文章

  1. .Net 转战 Android 4.4 日常笔记目录

    .Net 转战 Android 4.4 日常笔记(1)--工具及环境搭建 .Net 转战 Android 4.4 日常笔记(2)--HelloWorld入门程序 .Net 转战 Android 4.4 ...

  2. 【日常笔记】java文件下载返回数据流形式

    @RequestMapping("/downloadFile") @ResponseBody public void download(String uploadPathUrl, ...

  3. 黑马程序猿————Java基础日常笔记---反射与正則表達式

    ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 黑马程序猿----Java基础日常笔记---反射与正則表達式 1.1反射 反射的理解和作用: 首 ...

  4. .Net 转战 Android 4.4 日常笔记(1)--工具及环境搭建

    闲来没事做,还是想再学习一门新的技术,无论何时Android开发比Web的开发工资应该高40%,我也建议大家面对移动开发,我比较喜欢学习最新版本的,我有java的基础,但是年久,已经淡忘,以零基础学习 ...

  5. 初步swift语言学习笔记6(ARC-自己主动引用计数,内存管理)

    笔者:fengsh998 原文地址:http://blog.csdn.net/fengsh998/article/details/31824179 转载请注明出处 假设认为文章对你有所帮助.请通过留言 ...

  6. swift 可选类型笔记

    晚上十一点半了,看书累了,原本想睡了的,想了想,还是把刚看的总结一下,把这篇笔记写了吧.广州下雨,真特么的冷..好了,废话不说了,说正题说说Swift可选类型. 先定义一个变量: var string ...

  7. 《从零开始学Swift》学习笔记(Day 29)——访问级别

    Swift 2.0学习笔记(Day 29)——访问级别 原创文章,欢迎转载.转载请注明:关东升的博客 访问级别: Swift提供了3种不同访问级别,对应的访问修饰符为:public.internal和 ...

  8. 《从零开始学Swift》学习笔记(Day 13)——数据类型之整型和浮点型

    Swift 2.0学习笔记(Day 13)——数据类型之整型和浮点型 原创文章,欢迎转载.转载请注明:关东升的博客    Swift提供8.16.32.64位形式的有符号及无符号整数.这些整数类型遵循 ...

  9. 《从零开始学Swift》学习笔记(Day5)——我所知道的标识符和关键字

    Swift 2.0学习笔记(Day5)——我所知道的标识符和关键字   原创文章,欢迎转载.转载请注明:关东升的博客 好多计算机语言都有标识符和关键字,一直没有好好的总结,就是这样的用着,现在小小的整 ...

随机推荐

  1. Linux下python3、virtualenv、Mysql、redis安装配置

    一.在Linux安装python解释器 1.下载python3源码包 cd /opt/ wget https://www.python.org/ftp/python/3.6.2/Python-3.6. ...

  2. consul如何限制注册的ip

    假设当前服务器的ip是:192.168.56.130 允许 所有ip 注册 consul agent -server -ui -bootstrap-expect=1 -data-dir=/usr/lo ...

  3. Magento 最佳开发配置

    概观 典型的软件开发流程如下: 本地开发机器 > QA /集成服务器 > 预览服务器(可选)> 生产服务器 无论您是在编写新的Magento 2 扩展 还是为代码库做贡献,任何开发人 ...

  4. Codeforces 1077E Thematic Contests(二分)

    题目链接:Thematic Contests 题意:给出n道有类型的题目,每天组织一场专题比赛,该天题目数量必须是前一天的2倍,第一天的题目数量可以任意选择,求能消耗的最多题目数量. 题解:先整理成不 ...

  5. Java【第三篇】基本语法之--选择结构

    Java分支语句分类 分支语句根据一定的条件有选择地执行或跳过特定的语句,分为两类: if-else 语句 switch 语句 if-else语句语法格式 if(布尔表达式){ 语句或语句块; } i ...

  6. 为什么要写 tf.Graph().as_default()

    首先,去tensorflow官网API上查询 tf.Graph() 会看到如下图所示的内容: 总体含义是说: tf.Graph() 表示实例化了一个类,一个用于 tensorflow 计算和表示用的数 ...

  7. gcc __thread关键字

    https://blog.csdn.net/xj178926426/article/details/54345449 EventLoop.cpp __thread EventLoop* t_loopI ...

  8. Docker:dockerfile自动构建镜像 [六]

    一.手动docker镜像的缺点 相对于手动制作的docker镜像,使用dockerfile构建的镜像有以下优点: 1.dockerfile只有几kb,便于传输 2.使用dockerfile构建出来的镜 ...

  9. Elasticsearch-基础介绍及索引原理分析(转载)

    最近在参与一个基于Elasticsearch作为底层数据框架提供大数据量(亿级)的实时统计查询的方案设计工作,花了些时间学习Elasticsearch的基础理论知识,整理了一下,希望能对Elastic ...

  10. 第一节:.Net版基于WebSocket的聊天室样例

    一. 说在前面的话 该篇文章为实时通讯系列的第一节,基于WebSocket编写了一个简易版聊天样例,主要作用是为引出后面SignalR系列的用法及其强大方便之处,通过这个样例与后续的SignalR对比 ...