您的位置:首页 > 移动开发 > Swift

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)!);

        }

    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios swift 编程