//-------------------
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. Qin Shi Huang's National Road System HDU - 4081(树形dp+最小生成树)

    Qin Shi Huang's National Road System HDU - 4081 感觉这道题和hdu4756很像... 求最小生成树里面删去一边E1 再加一边E2 求该边两顶点权值和除以 ...

  2. Maze HDU - 4035(期望dp)

    When wake up, lxhgww find himself in a huge maze. The maze consisted by N rooms and tunnels connecti ...

  3. RQY大佬一晚报告总结

    首先基础真的很重要.今天所有学的东西,都是为明天做铺垫,(这样看好像每天都是基础)基础牢了,学东西也就一看就会的感觉吧. 其次,自学能力很重要,投入很重要.大佬说他自己也不是看一遍书就懂的,而是反复看 ...

  4. redis-sentinel高可用配置(2)

    一:说明 前面我们已经配置了redis的主从配置(链接),这种主从架构有一个问题,当主master出现了故障了,怎么切换到从服务器上呢? 第一种:手动切换, 这种肯定会造成比较长一段时间的用户不能访问 ...

  5. 2017-12-19python全栈9期第四天第二节之列表的增删查改之按切片删除

    #!/user/bin/python# -*- coding:utf-8 -*-li = ['zs','ls','ww','zl','xx']# del li[1:] #1到最后# print(li) ...

  6. python,可变对象,不可变对象,深拷贝,浅拷贝。

    学习整理,若有问题,欢迎指正. python 可变对象,不可变对象 可变对象 该对象所指定的内存地址上面的值可以被改变,变量被改变后,其所指向的内存地址上面的值,直接被改变,没有发生复制行为,也没有发 ...

  7. burp Suite 模块Authz 使用方法

    这个模块是朋友告诉我的,然后进行了研究使用方法. 以下为个人理解,如有错误感谢各位纠正. 0x00 安装Authz Extender > BApp Store > Authz > i ...

  8. vue通过extend动态创建全局组件(插件)学习小记

    测试环境:nodejs+webpack,例子是看文章的,注释为自己的理解 创建一个toast.vue文件: <template> <div class="wrap" ...

  9. JSON 之 SuperObject(11): TSuperTableString、TSuperAvlEntry

    JSON 之 SuperObject(11): TSuperTableString.TSuperAvlEntry - 万一 - 博客园http://www.cnblogs.com/del/archiv ...

  10. codeblocks修改字体颜色-背景颜色

    常用: 1. 编辑器背景-豆沙绿配置:色调85,饱和度123,亮度205: 2. 注释颜色-紫色:rgb(255,0,255): 参考: 改变codeblocks里面各种注释的颜色 常用颜色的RGB值 ...