以前没有写博客的习惯 (就是转载-_-!!!) ,以后要养成习惯了
距swift发布也有半个月的时间了,一直在项目之余边看边学
网上都说swift出现了,ios程序猿的工资要降低了。
我不认同,swift的出现恰恰提高了ios开发的门槛。 新手想学习不容易 ^_^!
所以工资是不会降的 好了,费话说多了,上干货!
写了一个demo练习swift语法,大神可以乎略 (本人一年多开发的小菜 )
1、swift声明变量,常量,定义UI控件
2、swift调用AFNetworking
3、swift中使用GCD
1、创建一个label
ViewController.swift
func initViews(){
/*
swift可是隐式的判断类型,所以定义变量可以简化
var label :UILabel = UILabel() -->
var label = UILabel()
*/
var label = UILabel()
label.frame = CGRect(x:60, y:400, width:200, height:100)
label.font = UIFont.boldSystemFontOfSize(18)
label.text = "这是code"
label.textColor = UIColor.redColor()
label.backgroundColor = UIColor.grayColor()
self.view.addSubview(label)
}
2、声名可变数组
SecondViewController.swift
//swift数据类型 String,Int
//var items : String[] = ["Hello Swift","Click Me","TableView DataSource"];
//可变数组
var dataSource = NSMutableArray()
调用AFNetworking之前要做2件事
1)、新建一个你的工程名-Bridging-Header.h文件,导入AFNetworking.h
2)、点击你的工程名 ----> Objective-C Bridging Header 添加 你的工程名/你的工程名--Bridging-Header.h
其实这一步在新建一个oc文件的时候,会出提示,点YES,Xcode会自动创建.h并配置好
如下图,但不知道为什么我的不出现 -_-!!
Tofu_First_Swift-Bridging-Header.h
//
// Use this file to import your target's public headers that you would like to expose to Swift.
//
#import "AFNetworking.h"
//swift 调用 AFNetworking类库进行网络请求
func initDataUseAFNetworking(){
let manager = AFHTTPRequestOperationManager()
println(url)
manager.GET(url,
parameters:nil,
success:{ (operation:AFHTTPRequestOperation!,responseObject: AnyObject!) in
println("\(responseObject.description)")
/*
这里解析json不清楚为什么不可以直接得到NSArray
var array = responseObject["entities"] as NSArray 报错,希望知道的可以解答一下。
*/
var dic = responseObject as NSDictionary
var array = dic["entities"] as NSArray
for dict :AnyObject in array{
self.dataSource.addObject(dict["name"])
}
self.tableView.reloadData()
},
failure:{(operation:AFHTTPRequestOperation!,error:NSError!) in
println("error \(error.localizedDescription)")
})
}
4、使用NSURLRequest 进行网络请求
//使用 NSURLRequest 进行网络请求
func initDataUsedReuqest(){
//创建URL
var loadUrl = NSURL.URLWithString(url)
//request请求
var request = NSURLRequest(URL :loadUrl)
//创建请求队列
var queue = NSOperationQueue()
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), {
//发起异步请求
NSURLConnection.sendAsynchronousRequest(request, queue: queue, completionHandler: { response, data, error in
if error {
println(error)
}else{
let json = NSJSONSerialization.JSONObjectWithData(data, options:NSJSONReadingOptions.MutableContainers, error: nil) as NSDictionary
let tempDataSource = json["entities"] as NSArray
for dict :AnyObject in tempDataSource{
self.dataSource.addObject(dict["name"])
}
dispatch_async(dispatch_get_main_queue(), {
self.tableView.reloadData()
})
}
})
})
}
附上demo工程下载地址:点我下载