Swift开发基础
2016-07-06 15:56
323 查看
import UIKit
extension Double {
// 转换
func format(f: String) -> String {
return NSString(format: "%\(f)f", self) as String;
}
}
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
print("Welcome Swift Class!");
print("这是一行输出信息")
/* 分隔符输出多个参数,自动换行 */
print("Swift", "is", "Open", "Source", separator:" ");
/* 分隔符输出多个参数,带后缀,不换行 */
print("Swift", "is", "Open", "Source", separator:"-", terminator: "! ");
// 自定义,写入到流文件
var myStream = MyStreamer();
print("First of all", toStream: &myStream);
print("Then after", toStream: &myStream);
print("And, finally", toStream: &myStream);
let PI : Double = 3.1415926;
print(PI.format(".1"));
let zhangIsBest :Bool = true;
let catIsDog : Bool = false;
if (zhangIsBest) {
print("无限互联,苹果iOS研发培训第一品牌");
} else {
// else部分代码
}
let m = 20;
if (m == 20) {
print("m = \(m)");
}
// 字符/字符串定义
var charValue1: Character = "a"; // 这是一个字符
var strValue1: String = "abcd"; // 这是一个字符串
var strValue3 = "a"; // 没有指定Character类型,虽然只有一个字符,但Swift默认是字符串
var charValue3 :Character = "上";
var charValue4 = charValue3;
/* 虽然 charValue4没有指定Character类型,但右侧返回的是Character类型,所以这个时候,变量charValue4也是Character类型 */
// 定义空字符串
var emptyString1 = ""; // 初始化一个空的字符串变量
var emptyString2 = String(); // 初始化一个空的字符串变量
// 判断字符串是否是空
if (emptyString1.isEmpty) {
print("emptyString1 是空串");
}
// 或
if (emptyString2 == "") {
print("emptyString2是空串");
}
// 字符串设置值的两种方法
var str1 = "abc";
var str2 = String("abc");
// 枚举字符串
let charSet = "获取字符串中的每一个字符";
for c in charSet.characters {
print(c);
}
// 定义元组
let product = (2015, "iPhone6S plus", 6088);
print(product);
// 当执行这两行代码时,会输出如下的结果
// (2015, iPhone6s plus, 6088)
var (_year, _name, _price) = product; // 分别将product的3个值赋给3个变量(_year, _name, _price)
print("year=\(_year) name=\(_name) price=\(_price)"); // 分别输出product中的3个值
let (_, name1, _) = product;
print("name1=\(name1)"); // 只输出_name一个值
let product2 = (year:2015, name:"iPhone6S plus", price:6088);
print(product2.year);
print(product2.name);
print(product2.price);
// 对可选类型进行判断使用
var stringValue : String?;
if (stringValue != nil) {
print("stringValue存在值");
}
// 感叹号使用
var stringValue1 : String?;
stringValue1 = "123";
print(stringValue1);
print(stringValue1!);
// 当stringValue1为nil时,上面打印为nil,而下面则会使程序崩溃,当stringValue1有值时上面会打印:Optional("123"),下面打印:123
if (stringValue1 != nil) {
print("stringValue存在值");
}
// 可选类型几种使用情况
var numStr : String = "123";
var value1 : Int? = Int(numStr); // value必须定义为Int类型,否则无法成功编译
print(value1); // value1定义为可选Int类型,输出:Optional(123)
var value2 : Int! = Int(numStr);
print(value2); // value2为Int类型,输出:123
// var value2 : Int? = Int(numStr);
// print(value2 + 6); // 编译失败,value2必须写成value2!,或在定义value2时使用“!”
}
struct MyStreamer: OutputStreamType {
// 获取文件句柄
lazy var fileHandle: NSFileHandle? = {
let fileHandle = NSFileHandle(forWritingAtPath: self.logPath);
return fileHandle;
}();
// 定义文件路径
lazy var logPath: String = {
let path : NSString = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.AllDomainsMask, true).first!;
let filePath = (path as NSString).stringByAppendingPathComponent("log.txt");
if !NSFileManager.defaultManager().fileExistsAtPath(filePath) {
NSFileManager.defaultManager().createFileAtPath(filePath, contents: nil, attributes: nil);
}
print(filePath);
return filePath;
}();
// 追加写入到文件
mutating func write(string: String) {
fileHandle?.seekToEndOfFile();
fileHandle?.writeData(string.dataUsingEncoding(NSUTF8StringEncoding)!);
}
}
extension Double {
// 转换
func format(f: String) -> String {
return NSString(format: "%\(f)f", self) as String;
}
}
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
print("Welcome Swift Class!");
print("这是一行输出信息")
/* 分隔符输出多个参数,自动换行 */
print("Swift", "is", "Open", "Source", separator:" ");
/* 分隔符输出多个参数,带后缀,不换行 */
print("Swift", "is", "Open", "Source", separator:"-", terminator: "! ");
// 自定义,写入到流文件
var myStream = MyStreamer();
print("First of all", toStream: &myStream);
print("Then after", toStream: &myStream);
print("And, finally", toStream: &myStream);
let PI : Double = 3.1415926;
print(PI.format(".1"));
let zhangIsBest :Bool = true;
let catIsDog : Bool = false;
if (zhangIsBest) {
print("无限互联,苹果iOS研发培训第一品牌");
} else {
// else部分代码
}
let m = 20;
if (m == 20) {
print("m = \(m)");
}
// 字符/字符串定义
var charValue1: Character = "a"; // 这是一个字符
var strValue1: String = "abcd"; // 这是一个字符串
var strValue3 = "a"; // 没有指定Character类型,虽然只有一个字符,但Swift默认是字符串
var charValue3 :Character = "上";
var charValue4 = charValue3;
/* 虽然 charValue4没有指定Character类型,但右侧返回的是Character类型,所以这个时候,变量charValue4也是Character类型 */
// 定义空字符串
var emptyString1 = ""; // 初始化一个空的字符串变量
var emptyString2 = String(); // 初始化一个空的字符串变量
// 判断字符串是否是空
if (emptyString1.isEmpty) {
print("emptyString1 是空串");
}
// 或
if (emptyString2 == "") {
print("emptyString2是空串");
}
// 字符串设置值的两种方法
var str1 = "abc";
var str2 = String("abc");
// 枚举字符串
let charSet = "获取字符串中的每一个字符";
for c in charSet.characters {
print(c);
}
// 定义元组
let product = (2015, "iPhone6S plus", 6088);
print(product);
// 当执行这两行代码时,会输出如下的结果
// (2015, iPhone6s plus, 6088)
var (_year, _name, _price) = product; // 分别将product的3个值赋给3个变量(_year, _name, _price)
print("year=\(_year) name=\(_name) price=\(_price)"); // 分别输出product中的3个值
let (_, name1, _) = product;
print("name1=\(name1)"); // 只输出_name一个值
let product2 = (year:2015, name:"iPhone6S plus", price:6088);
print(product2.year);
print(product2.name);
print(product2.price);
// 对可选类型进行判断使用
var stringValue : String?;
if (stringValue != nil) {
print("stringValue存在值");
}
// 感叹号使用
var stringValue1 : String?;
stringValue1 = "123";
print(stringValue1);
print(stringValue1!);
// 当stringValue1为nil时,上面打印为nil,而下面则会使程序崩溃,当stringValue1有值时上面会打印:Optional("123"),下面打印:123
if (stringValue1 != nil) {
print("stringValue存在值");
}
// 可选类型几种使用情况
var numStr : String = "123";
var value1 : Int? = Int(numStr); // value必须定义为Int类型,否则无法成功编译
print(value1); // value1定义为可选Int类型,输出:Optional(123)
var value2 : Int! = Int(numStr);
print(value2); // value2为Int类型,输出:123
// var value2 : Int? = Int(numStr);
// print(value2 + 6); // 编译失败,value2必须写成value2!,或在定义value2时使用“!”
}
struct MyStreamer: OutputStreamType {
// 获取文件句柄
lazy var fileHandle: NSFileHandle? = {
let fileHandle = NSFileHandle(forWritingAtPath: self.logPath);
return fileHandle;
}();
// 定义文件路径
lazy var logPath: String = {
let path : NSString = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.AllDomainsMask, true).first!;
let filePath = (path as NSString).stringByAppendingPathComponent("log.txt");
if !NSFileManager.defaultManager().fileExistsAtPath(filePath) {
NSFileManager.defaultManager().createFileAtPath(filePath, contents: nil, attributes: nil);
}
print(filePath);
return filePath;
}();
// 追加写入到文件
mutating func write(string: String) {
fileHandle?.seekToEndOfFile();
fileHandle?.writeData(string.dataUsingEncoding(NSUTF8StringEncoding)!);
}
}
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- Apple Swift学习教程
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- 肯特·贝克:改变人生的代码整理魔法
- 你应该学习哪种编程语言?
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- [转]我们需要一种其他人能使用的编程语言
- 介绍 Fedora 上的 Swift
- DB2编程序技巧(1)
- DB2编程序技巧 (四)
- 女人VS编程_国庆快乐
- DB2编程序技巧 (六)
- DB2编程序技巧 (三)
- DB2编程序技巧 (九)
- DB2编程序技巧 (七)