2014 swift wwdc_swift 引用swift - CSDN
  • Swift是苹果于WWDC 2014发布的编程语言,这里引用The Swift Programming Language的原话:    Swift is a new programming language for iOS and OS X apps that builds on the best of C and ...
    
    
    Swift是什么?
     
    Swift是苹果于WWDC 2014发布的编程语言,这里引用The Swift Programming Language的原话:
     
     Swift is a new programming language for iOS and OS X apps that builds on the best of C and Objective-C, without the constraints of C compatibility.
     
    Swift adopts safe programming patterns and adds modern features to make programming easier, more flexible and more fun.
     
    Swift’s clean slate, backed by the mature and much-loved Cocoa and Cocoa Touch frameworks, is an opportunity to imagine how software development works.
     
    Swift is the first industrial-quality systems programming language that is as expressive and enjoyable as a scripting language.
     
    简单的说:
    Swift用来写iOS和OS X程序。(估计也不会支持其它屌丝系统)
    Swift吸取了C和Objective-C的优点,且更加强大易用。
    Swift可以使用现有的Cocoa和Cocoa Touch框架。
    Swift兼具编译语言的高性能(Performance)和脚本语言的交互性(Interactive)。
     

    Swift语言概览
     
    基本概念
    注:这一节的代码源自The Swift Programming Language中的A Swift Tour。
     
    Hello, world
    类似于脚本语言,下面的代码即是一个完整的Swift程序。
    1. println("Hello, world"
     
    变量与常量
    Swift使用var声明变量,let声明常量。
    1. var myVariable = 42 
    2. myVariable = 50 
    3. let myConstant = 42 
    类型推导
    Swift支持类型推导(Type Inference),所以上面的代码不需指定类型,如果需要指定类型:
    1. let explicitDouble : Double = 70 
    Swift不支持隐式类型转换(Implicitly casting),所以下面的代码需要显式类型转换(Explicitly casting):
      1. let label = "The width is " 
      2. let width = 94 
      3. let widthLabel = label + String(width) 
     
    字符串格式化
    Swift使用\(item)的形式进行字符串格式化:
    1. let apples = 3 
    2. let oranges = 5 
    3. let appleSummary = "I have \(apples) apples." 
    4. let appleSummary = "I have \(apples + oranges) pieces of fruit." 
    数组和字典
    Swift使用[]操作符声明数组(array)和字典(dictionary):
    1. var shoppingList = ["catfish""water""tulips""blue paint"
    2. shoppingList[1] = "bottle of water" 
    3.   
    4. var occupations = [ 
    5.     "Malcolm""Captain"
    6.     "Kaylee""Mechanic"
    7. occupations["Jayne"] = "Public Relations" 
    一般使用初始化器(initializer)语法创建空数组和空字典:
    1. let emptyArray = String[]() 
    2. let emptyDictionary = Dictionary<String, Float>() 
    如果类型信息已知,则可以使用[]声明空数组,使用[:]声明空字典。
     
    控制流
    概览
    Swift的条件语句包含if和switch,循环语句包含for-in、for、while和do-while,循环/判断条件不需要括号,但循环/判断体(body)必需括号:
    1. let individualScores = [75, 43, 103, 87, 12] 
    2. var teamScore = 0 
    3. for score in individualScores { 
    4.     if score > 50 { 
    5.         teamScore += 3 
    6.     } else { 
    7.         teamScore += 1 
    8.     } 
    可空类型
    结合if和let,可以方便的处理可空变量(nullable variable)。对于空值,需要在类型声明后添加?显式标明该类型可空。
    1. var optionalString: String? = "Hello" 
    2. optionalString == nil 
    3.   
    4. var optionalName: String? = "John Appleseed" 
    5. var gretting = "Hello!" 
    6. if let name = optionalName { 
    7.     gretting = "Hello, \(name)" 
    灵活的switch
    Swift中的switch支持各种各样的比较操作:
    1. let vegetable = "red pepper" 
    2. switch vegetable { 
    3. case "celery"
    4.     let vegetableComment = "Add some raisins and make ants on a log." 
    5. case "cucumber""watercress"
    6.     let vegetableComment = "That would make a good tea sandwich." 
    7. case let x where x.hasSuffix("pepper"): 
    8.     let vegetableComment = "Is it a spicy \(x)?" 
    9. default
    10.     let vegetableComment = "Everything tastes good in soup." 
    其它循环
    for-in除了遍历数组也可以用来遍历字典:
    1. let interestingNumbers = [ 
    2.     "Prime": [2, 3, 5, 7, 11, 13], 
    3.     "Fibonacci": [1, 1, 2, 3, 5, 8], 
    4.     "Square": [1, 4, 9, 16, 25], 
    5. var largest = 0 
    6. for (kind, numbers) in interestingNumbers { 
    7.     for number in numbers { 
    8.         if number > largest { 
    9.             largest = number 
    10.         } 
    11.     } 
    12. largest 
    while循环和do-while循环:
    1. var n = 2 
    2. while n < 100 { 
    3.     n = n * 2 
    4.   
    5. var m = 2 
    6. do { 
    7.     m = m * 2 
    8. while m < 100 
    Swift支持传统的for循环,此外也可以通过结合..(生成一个区间)和for-in实现同样的逻辑。
    1. var firstForLoop = 0 
    2. for i in 0..3 { 
    3.     firstForLoop += i 
    4. firstForLoop 
    5.   
    6. var secondForLoop = 0 
    7. for var i = 0; i < 3; ++i { 
    8.     secondForLoop += 1 
    9. secondForLoop 
    注意:Swift除了..还有...:..生成前闭后开的区间,而...生成前闭后闭的区间。
     
    函数和闭包
     
    函数
    Swift使用func关键字声明函数:
    1. func greet(name: String, day: String) -> String { 
    2.     return "Hello \(name), today is \(day)." 
    3. greet("Bob""Tuesday"
    通过元组(Tuple)返回多个值:
    1. func getGasPrices() -> (Double, Double, Double) { 
    2.     return (3.59, 3.69, 3.79) 
    3. getGasPrices() 
    支持带有变长参数的函数:
    1. func sumOf(numbers: Int...) -> Int { 
    2.     var sum = 0 
    3.     for number in numbers { 
    4.         sum += number 
    5.     } 
    6.     return sum 
    7. sumOf() 
    8. sumOf(42, 597, 12) 
    函数也可以嵌套函数:
    1. func returnFifteen() -> Int { 
    2.     var y = 10 
    3.     func add() { 
    4.         y += 5 
    5.     } 
    6.     add() 
    7.     return y 
    8. returnFifteen() 
    作为头等对象,函数既可以作为返回值,也可以作为参数传递:
    1. func makeIncrementer() -> (Int -> Int) { 
    2.     func addOne(number: Int) -> Int { 
    3.         return 1 + number 
    4.     } 
    5.     return addOne 
    6. var increment = makeIncrementer() 
    7. increment(7) 
     
    1. func hasAnyMatches(list: Int[], condition: Int -> Bool) -> Bool { 
    2.     for item in list { 
    3.         if condition(item) { 
    4.             return true 
    5.         } 
    6.     } 
    7.     return false 
    8. func lessThanTen(number: Int) -> Bool { 
    9.     return number < 10 
    10. var numbers = [20, 19, 7, 12] 
    11. hasAnyMatches(numbers, lessThanTen) 
    闭包
    本质来说,函数是特殊的闭包,Swift中可以利用{}声明匿名闭包:
    1. numbers.map({ 
    2.     (number: Int) -> Int in 
    3.     let result = 3 * number 
    4.     return result 
    5.     }) 
    当闭包的类型已知时,可以使用下面的简化写法:
    1. numbers.map({ number in 3 * number }) 
    此外还可以通过参数的位置来使用参数,当函数最后一个参数是闭包时,可以使用下面的语法:
    1. sort([1, 5, 3, 12, 2]) { $0 > $1 } 
     
    类和对象
     
    创建和使用类
    Swift使用class创建一个类,类可以包含字段和方法:
    1. class Shape { 
    2.     var numberOfSides = 0 
    3.     func simpleDescription() -> String { 
    4.         return "A shape with \(numberOfSides) sides." 
    5.     } 
    创建Shape类的实例,并调用其字段和方法。
    1. var shape = Shape() 
    2. shape.numberOfSides = 7 
    3. var shapeDescription = shape.simpleDescription() 
    通过init构建对象,既可以使用self显式引用成员字段(name),也可以隐式引用(numberOfSides)。
    1. class NamedShape { 
    2.     var numberOfSides: Int = 0 
    3.     var name: String 
    4.   
    5.     init(name: String) { 
    6.         self.name = name 
    7.     } 
    8.   
    9.     func simpleDescription() -> String { 
    10.         return "A shape with \(numberOfSides) sides." 
    11.     } 
    使用deinit进行清理工作。
     
    继承和多态
    Swift支持继承和多态(override父类方法):
    1. class Square: NamedShape { 
    2.     var sideLength: Double 
    3.   
    4.     init(sideLength: Double, name: String) { 
    5.         self.sideLength = sideLength 
    6.         super.init(name: name) 
    7.         numberOfSides = 4 
    8.     } 
    9.   
    10.     func area() -> Double { 
    11.         return sideLength * sideLength 
    12.     } 
    13.   
    14.     override func simpleDescription() -> String { 
    15.         return "A square with sides of length \(sideLength)." 
    16.     } 
    17. let test = Square(sideLength: 5.2, name: "my test square"
    18. test.area() 
    19. test.simpleDescription() 
    注意:如果这里的simpleDescription方法没有被标识为override,则会引发编译错误。
     
    属性
    为了简化代码,Swift引入了属性(property),见下面的perimeter字段:
    1. class EquilateralTriangle: NamedShape { 
    2.     var sideLength: Double = 0.0 
    3.  
    4.     init(sideLength: Double, name: String) { 
    5.         self.sideLength = sideLength 
    6.         super.init(name: name) 
    7.         numberOfSides = 3 
    8.     } 
    9.  
    10.     var perimeter: Double { 
    11.     get { 
    12.         return 3.0 * sideLength 
    13.     } 
    14.     set { 
    15.         sideLength = newValue / 3.0 
    16.     } 
    17.     } 
    18.  
    19.     override func simpleDescription() -> String { 
    20.         return "An equilateral triagle with sides of length \(sideLength)." 
    21.     } 
    22. var triangle = EquilateralTriangle(sideLength: 3.1, name: "a triangle"
    23. triangle.perimeter 
    24. triangle.perimeter = 9.9 
    25. triangle.sideLength 
     
    注意:赋值器(setter)中,接收的值被自动命名为newValue。
     
    willSet和didSet
    EquilateralTriangle的构造器进行了如下操作:
    1.为子类型的属性赋值。
    2.调用父类型的构造器。
    3.修改父类型的属性。
     
    如果不需要计算属性的值,但需要在赋值前后进行一些操作的话,使用willSet和didSet:
    1. class TriangleAndSquare { 
    2.     var triangle: EquilateralTriangle { 
    3.     willSet { 
    4.         square.sideLength = newValue.sideLength 
    5.     } 
    6.     } 
    7.     var square: Square { 
    8.     willSet { 
    9.         triangle.sideLength = newValue.sideLength 
    10.     } 
    11.     } 
    12.     init(size: Double, name: String) { 
    13.         square = Square(sideLength: size, name: name) 
    14.         triangle = EquilateralTriangle(sideLength: size, name: name) 
    15.     } 
    16. var triangleAndSquare = TriangleAndSquare(size: 10, name: "another test shape"
    17. triangleAndSquare.square.sideLength 
    18. triangleAndSquare.square = Square(sideLength: 50, name: "larger square"
    19. triangleAndSquare.triangle.sideLength 
    从而保证triangle和square拥有相等的sideLength。
     
    调用方法
    Swift中,函数的参数名称只能在函数内部使用,但方法的参数名称除了在内部使用外还可以在外部使用(第一个参数除外),例如:
    1. class Counter { 
    2.     var count: Int = 0 
    3.     func incrementBy(amount: Int, numberOfTimes times: Int) { 
    4.         count += amount * times 
    5.     } 
    6. var counter = Counter() 
    7. counter.incrementBy(2, numberOfTimes: 7) 
    注意Swift支持为方法参数取别名:在上面的代码里,numberOfTimes面向外部,times面向内部。
     
    ?的另一种用途
    使用可空值时,?可以出现在方法、属性或下标前面。如果?前的值为nil,那么?后面的表达式会被忽略,而原表达式直接返回nil,例如:
    1. let optionalSquare: Square? = Square(sideLength: 2.5, name: "optional  
    2. square") 
    3. let sideLength = optionalSquare?.sideLength 
    当optionalSquare为nil时,sideLength属性调用会被忽略。
     
    枚举和结构
     
    枚举
    使用enum创建枚举——注意Swift的枚举可以关联方法:
    1. enum Rank: Int { 
    2.     case Ace = 1 
    3.     case Two, Three, Four, Five, Six, Seven, Eight, Nine, Ten 
    4.     case Jack, Queen, King 
    5.         func simpleDescription() -> String { 
    6.         switch self { 
    7.             case .Ace: 
    8.                 return "ace" 
    9.             case .Jack: 
    10.                 return "jack" 
    11.             case .Queen: 
    12.                 return "queen" 
    13.             case .King: 
    14.                 return "king" 
    15.             default
    16.                 return String(self.toRaw()) 
    17.         } 
    18.     } 
    19. let ace = Rank.Ace 
    20. let aceRawValue = ace.toRaw() 
    使用toRaw和fromRaw在原始(raw)数值和枚举值之间进行转换:
    1. if let convertedRank = Rank.fromRaw(3) { 
    2.     let threeDescription = convertedRank.simpleDescription() 
    注意:枚举中的成员值(member value)是实际的值(actual value),和原始值(raw value)没有必然关联。
     
    一些情况下枚举不存在有意义的原始值,这时可以直接忽略原始值:
    1. enum Suit { 
    2.     case Spades, Hearts, Diamonds, Clubs 
    3.         func simpleDescription() -> String { 
    4.         switch self { 
    5.             case .Spades: 
    6.                 return "spades" 
    7.             case .Hearts: 
    8.                 return "hearts" 
    9.             case .Diamonds: 
    10.                 return "diamonds" 
    11.             case .Clubs: 
    12.                 return "clubs" 
    13.         } 
    14.     } 
    15. let hearts = Suit.Hearts 
    16. let heartsDescription = hearts.simpleDescription() 
    除了可以关联方法,枚举还支持在其成员上关联值,同一枚举的不同成员可以有不同的关联的值:
    1. enum ServerResponse { 
    2.     case Result(String, String) 
    3.     case Error(String) 
    4.   
    5. let success = ServerResponse.Result("6:00 am""8:09 pm"
    6. let failure = ServerResponse.Error("Out of cheese."
    7.   
    8. switch success { 
    9.     case let .Result(sunrise, sunset): 
    10.         let serverResponse = "Sunrise is at \(sunrise) and sunset is at \(sunset)." 
    11.     case let .Error(error): 
    12.         let serverResponse = "Failure... \(error)" 
    结构
    Swift使用struct关键字创建结构。结构支持构造器和方法这些类的特性。结构和类的最大区别在于:结构的实例按值传递(passed by value),而类的实例按引用传递(passed by reference)。
    1. struct Card { 
    2.     var rank: Rank 
    3.     var suit: Suit 
    4.     func simpleDescription() -> String { 
    5.         return "The \(rank.simpleDescription()) of \(suit.simpleDescription())" 
    6.     } 
    7. let threeOfSpades = Card(rank: .Three, suit: .Spades) 
    8. let threeOfSpadesDescription = threeOfSpades.simpleDescription() 
     
    协议(protocol)和扩展(extension)
     
    协议
    Swift使用protocol定义协议:
    1. protocol ExampleProtocol { 
    2.     var simpleDescription: String { get } 
    3.     mutating func adjust() 
     
    类型、枚举和结构都可以实现(adopt)协议:
    1. class SimpleClass: ExampleProtocol { 
    2.     var simpleDescription: String = "A very simple class." 
    3.     var anotherProperty: Int = 69105 
    4.     func adjust() { 
    5.         simpleDescription += " Now 100% adjusted." 
    6.     } 
    7. var a = SimpleClass() 
    8. a.adjust() 
    9. let aDescription = a.simpleDescription 
    10.   
    11. struct SimpleStructure: ExampleProtocol { 
    12.     var simpleDescription: String = "A simple structure" 
    13.     mutating func adjust() { 
    14.         simpleDescription += " (adjusted)" 
    15.     } 
    16. var b = SimpleStructure() 
    17. b.adjust() 
    18. let bDescription = b.simpleDescription 
     
    扩展
    扩展用于在已有的类型上增加新的功能(比如新的方法或属性),Swift使用extension声明扩展:
    1. extension Int: ExampleProtocol { 
    2.     var simpleDescription: String { 
    3.         return "The number \(self)" 
    4.     } 
    5.     mutating func adjust() { 
    6.         self += 42 
    7.     } 
    8. 7.simpleDescription 
     
    泛型(generics)
    Swift使用<>来声明泛型函数或泛型类型:
    1. func repeat<ItemType>(item: ItemType, times: Int) -> ItemType[] { 
    2.     var result = ItemType[]() 
    3.     for i in 0..times { 
    4.         result += item 
    5.     } 
    6.     return result 
    7. repeat("knock", 4) 
     
    Swift也支持在类、枚举和结构中使用泛型:
    1. // Reimplement the Swift standard library's optional type 
    2. enum OptionalValue<T> { 
    3.     case None 
    4.     case Some(T) 
    5. var possibleInteger: OptionalValue<Int> = .None 
    6. possibleInteger = .Some(100) 
     
    有时需要对泛型做一些需求(requirements),比如需求某个泛型类型实现某个接口或继承自某个特定类型、两个泛型类型属于同一个类型等等,Swift通过where描述这些需求:
    1. func anyCommonElements <T, U where T: Sequence, U: Sequence, T.GeneratorType.Element: Equatable, T.GeneratorType.Element == U.GeneratorType.Element> (lhs: T, rhs: U) -> Bool { 
    2.     for lhsItem in lhs { 
    3.         for rhsItem in rhs { 
    4.             if lhsItem == rhsItem { 
    5.                 return true 
    6.             } 
    7.         } 
    8.     } 
    9.     return false 
    10. anyCommonElements([1, 2, 3], [3]) 
     
    Swift语言概览就到这里,有兴趣的朋友请进一步阅读The Swift Programming Language。
     
    接下来聊聊个人对Swift的一些感受。
     

    个人感受
     
    注意:下面的感受纯属个人意见,仅供参考。
     
    大杂烩
    尽管我接触Swift不足两小时,但很容易看出Swift吸收了大量其它编程语言中的元素,这些元素包括但不限于:
     
    1.属性(Property)、可空值(Nullable type)语法和泛型(Generic Type)语法源自C#。
    2.格式风格与Go相仿(没有句末的分号,判断条件不需要括号)。
    3.Python风格的当前实例引用语法(使用self)和列表字典声明语法。
    4.Haskell风格的区间声明语法(比如1..3,1...3)。
    5.协议和扩展源自Objective-C(自家产品随便用)。
    6.枚举类型很像Java(可以拥有成员或方法)。
    7.class和struct的概念和C#极其相似。
     
    注意这里不是说Swift是抄袭——实际上编程语言能玩的花样基本就这些,况且Swift选的都是在我看来相当不错的特性。
     
    而且,这个大杂烩有一个好处——就是任何其它编程语言的开发者都不会觉得Swift很陌生——这一点很重要。
     
    拒绝隐式(Refuse implicity)
    Swift去除了一些隐式操作,比如隐式类型转换和隐式方法重载这两个坑,干的漂亮。
     
    Swift的应用方向
    我认为Swift主要有下面这两个应用方向:
     
    教育
    我指的是编程教育。现有编程语言最大的问题就是交互性奇差,从而导致学习曲线陡峭。相信Swift及其交互性极强的编程环境能够打破这个局面,让更多的人——尤其是青少年,学会编程。
     
    这里有必要再次提到Brec Victor的Inventing on Principle,看了这个视频你就会明白一个交互性强的编程环境能够带来什么。
     
    应用开发
    现有的iOS和OS X应用开发均使用Objective-C,而Objective-C是一门及其繁琐(verbose)且学习曲线比较陡峭的语言,如果Swift能够提供一个同现有Obj-C框架的简易互操作接口,我相信会有大量的程序员转投Swift;与此同时,Swift简易的语法也会带来相当数量的其它平台开发者。
     
    总之,上一次某家大公司大张旗鼓的推出一门编程语言及其编程平台还是在2000年(微软推出C#),将近15年之后,苹果推出Swift——作为开发者,我很高兴能够见证一门编程语言的诞生。


     
    展开全文
  • A001 - WWDC 2014 Swift 入门 WWDC 2014 官方视频 中文翻译 A001.01 变量 / 字符串 / 集合 / 循环语句 A001.02 可能值 / 条件语句 / 方法 / 元组 / 闭包 A001.03 类 / 继承 / 初始化 / 属性 / 方法 A001.04...


    A001 - WWDC 2014 Swift 入门
    WWDC 2014 官方视频 中文翻译


    A001.01 变量 / 字符串 / 集合 / 循环语句
    A001.02 可能值 / 条件语句 / 方法 / 元组 / 闭包
    A001.03 类 / 继承 / 初始化 / 属性 / 方法
    A001.04 结构体 / 常量与变量 / 枚举 / 扩展 / 泛型
    A001.Patch 补丁:字符串操作 / 数组操作 / 集合类型 / 区间 / 元组可能值


    楼下传送门麻烦各位复制粘贴到浏览器~


    所有分集联播/下载:
        Youku:(全分集)
    http://v.youku.com/v_show/id_XNzI1MTQ5NzYw.html?f=22361976

    展开全文
  • A002 - WWDC 2014 Swift 进阶 WWDC 2014 官方视频 中文翻译 A002.01 可能值 / 可能值绑定 / 可能值链 A002.02 内存管理 / 自动引用计数 / 弱引用 / 非持有引用 A002.03 初始化原则 / 便捷初始化 / 初始化...


    A002 - WWDC 2014 Swift 进阶
    WWDC 2014 官方视频 中文翻译


    A002.01 可能值 / 可能值绑定 / 可能值链
    A002.02 内存管理 / 自动引用计数 / 弱引用 / 非持有引用
    A002.03 初始化原则 / 便捷初始化 / 初始化继承 / 延缓加载属性 / 反初始化
    A002.04 带参闭包 / 隐式 / 函数式编程 / 捕获 / 闭包内存管理
    A002.05 模式匹配 / 模式组合 / 类型模式匹配 / 元组模式匹配
    A002.Patch 补丁:可能值链 / ?? 运算符 / 初始化覆盖/ required / @


    所有分集联播/下载:
        Youku:(全分集)
    http://v.youku.com/v_show/id_XNzM4NTAwNzk2.html?f=22519841

    展开全文
  • 今年的 WWDC2014年 6月 2日如期拉开了序幕。 自苹果帮主乔布斯离世后, 我对 WWDC 的关注度 减少了很多。 更何况近几年 WWDC 没有推出过什么 什么爆炸性的产品, 以至于我已经忘记了 今年WWDC 开幕的日子。 ...
    每年一度的 苹果开发者大会总能吸引一些眼球,可谓是苹果开发者盛宴。  今年的 WWDC 于 2014年 6月 2日如期拉开了序幕。 自苹果帮主乔布斯离世后, 我对 WWDC
     的关注度 减少了很多。 更何况近几年 WWDC 没有推出过什么 什么爆炸性的产品, 以至于我已经忘记了 今年WWDC 开幕的日子。
    

    今天一上班, 就看到了关于 WWDC 2014 的各类新闻,新版本 iOS8 增加了一些更加人性化的功能, 这不足为奇。 新的产品,自然会增加一些新的功能, 谁家的产品发布会 都能做到,更何况苹果呢。 当我看到一条: 苹果发布了iOS 新的开发语言 swift, 我着实为之一振。  

    一种新的开发语言的发布, 对开发者来说意味着什么呢? 尤其是对 iOS 老程序员来说,意味着什么呢?  想想 早期 Nokia 塞班 那些开发工程师的下场吧。  掌握乃至精通一门编程语言,不是那么简单的。 它需要时间的历练。   这种心情可套用一句话来形容: “辛辛苦苦十几年,一朝回到解放前”。 

    今天,可以说,我怀着无比忐忑的心情,读完了 swift 文档。 读后的心情,可用 “莫名”二字来形容。 

    仅仅是读懂一门语言,当然没什么难的。 就拿swift 编程语言来讲, 比 Objective -C  要容易些。  OC 中 特有 中括号[  ], 在 swift 中不见了。 @ 也几乎不怎么用了。   这样一改, 你就会觉得 swift 不再那么怪怪的了。 

    但如果你熟悉 OC, 你又会觉得 swift 仅仅是 OC 的另一种表达方式。 为什么说呢 ?

    我们先来回顾下 OC 中那些标志性的 语句:
    Property,protocol, array, dictionary  等 在 swift 都有对应的详细描述。 这些都是 OC 赖以生存的基础。 进一步想, App 不就是 页面跳转 和数据展示么? 

    如果你对OC 中的这些特有的用法已经驾轻就熟, 对学习使用 swift 来说,那还不是囊中取物! 

    作为iOS 开发工程师, “纸上得来终觉浅,绝知此事要躬行” 。 不妨 下载个 xcode 6 beta
    版, 耐心体验下吧。 

    iOS:  WWDC 2014 之 swift 编程语言 - 悠悠 - 悠悠电台iOS客户端:几千个国内外电台
     
    小结:
    要想一直走在技术的前沿,就应该以开放的、学习的心态来迎接新的事物。 世间唯一不变的事物,就是“变”。 作为 iOS 开发者来说, 需要关注新的技术,但对于产品开发, 不会轻易地选用尚未成熟的平台。 除非苹果在App 审核时硬性要求。 

    原文链接:http://leopard168.blog.163.com/blog/static/1684718442014531317962/
    展开全文
  • 今年的WWDC大会在今天北京时间凌晨举行,大概进行了3个多近
  • 苹果于 WWDC 2014发布的编程语言——Swift
  • 这届WWDC给人的总体感觉是融合,设备(手机IOS)和设备(电脑MAC OS X)的融合,人与信息的融合(SpotLight),人与代码的融合(Swift),人与人和设备的融合(HomeKit),接下来我就从这几个融合来说说我的理解。
  • Swift是苹果公司在2014WWDC(苹果开发者大会)上发布的全新编程语言。 跟Objective-C一样,可用于编写 iOS 和 OS X 应用程序,支持 Cocoa 和 Cocoa Touch 框架。 Swift的语法特点 Swift 结合了 C 和 Objective-...
  • Swift是苹果于2014WWDC(苹果开发者大会)发布的新开发语言,可与Objective-C共同运行于MAC OS和iOS平台,用于搭建基于苹果平台的应用程序。 2、举例说明Swift里面有哪些是 Objective-C中没有的? Swift...
  • WWDC2014开源代码

    2014-06-03 09:08:47
    WWDC2014开源代码
  • View Layout and Presentation 布局和演示 View Layout and Presentation布局和演示新增9个组件,其中包含一个新类Grid和Hierarchical View。另外加强Stack和ScrollView的功能。 扩展Stacks 新增内容 ...
  • 苹果于2014WWDC发布Swift全新语言,前不久2.0也正式发布,作为一个iOS开发人员,也一定要跟上节奏,因此最近在平时的闲暇时间, 开始把自己做过的项目尝试用swift语言写了一遍,学习全新的语法和设计模式,由于...
  • 不出所料,Apple在过去一年间给予了SwiftUI极高的重视,本次WWDC也公布了非常多的新内容。 本文主要基于WWDC20 Day2 中对SwiftUI的概览性介绍视频 - 《What‘s new in SwiftUI》,同时结合本人过去一年间对SwiftUI...
  • 19 年的WWDC正在进行中,作为开发者的我除了看到AR、Siri、CoreML部分和Xcode11的改版。最让我惊喜的就是SwifUI了。以下大部分翻译于苹果官网,学习去官网更方便。 为什么会使我那么惊喜? 我们都知道前端工作离...
  • WWDC 2014 笔记 - Swift

    2019-02-28 09:03:52
    另外 GitHub 上也有不少工具能批量下载,其中 WWDC-Downloader 可以下载 Sample Code。 下面按照 Session 顺序来做些笔记。 Session 402 - Introduction to Swift 看名字就知道不会有啥干货,基本上是概述了 Swift ...
  • 其实最先朋友让我就这个题目写篇文章的时候,我是拒绝的,因为觉得苹果就是在炒冷饭, 把已经流行了数十年的OOP中的“面向接口编程”还拿来讲,看完整个Session之后呢,虽然还是觉得在炒冷饭,但是毕竟还是加了蛋的...
  • Apple在推出Swift时就将其冠以先进、安全和高效的新一代编程语言之名。...在2014WWDC大会上,Apple宣称Swift具有超越Objective-C的性能,甚至某些情况下可以媲美和超过C。但在正式发布后,很多开发者发现
  • Swift,苹果于2014WWDC(苹果开发者大会)发布的新开发语言,可与Objective-C*共同运行于Mac OS和iOS平台,用于搭建基于苹果平台的应用程序。 Swift是一款易学易用的编程语言,而且它还是第一套具有与脚本语言...
  • Swift是Apple在WWDC2014所发布的一门编程语言,用来撰写OS X和iOS应用程序[1]。在设计Swift时.就有意和Objective-C共存,Objective-C是Apple操作系统在导入Swift前使用的编程语言 Swift是供iOS和OS X应用编程的新...
  • WWDC2020 和 iOS14 SwiftUI有哪些看点我们应该准备点什么 随着WWDC2020将于6月22日召开,同时还有下一个操作系统iOS14也将同时发布。iOS 14中将添加哪些功能呢,SwiftUI会进一步优化么,他会再次给我们带来神奇么。...
1 2 3 4 5 ... 20
收藏数 4,315
精华内容 1,726
关键字:

2014 swift wwdc