精华内容
参与话题
问答
  • 浅谈Swift和OC的区别

    万次阅读 2018-06-07 14:29:38
    本文转自:https://www.cnblogs.com/yajunLi/p/6862164.html一、Swift和Objective-C的联系Swift和Objective-C共用一套运行时环境,Swift的类型可以桥接到Objective-C(下面我简称OC),反之亦然。两者可以互相引用...

    本文转自:https://www.cnblogs.com/yajunLi/p/6862164.html

    一、Swift和Objective-C的联系

    Swift和Objective-C共用一套运行时环境,Swift的类型可以桥接到Objective-C(下面我简称OC),反之亦然。两者可以互相引用混合编程。其次就是,OC之前积累的很多类库,在Swift中大部分依然可以直接使用,当然,Swift3之后,一些语法改变了很多,不过还是有迹可循的。OC出现过的绝大多数概念,比如引用计数、ARC、属性、协议、接口、初始化、扩展类、命名参数、匿名函数等,在Swift中继续有效(可能最多换个术语)。Swift大多数概念与OC一样。当然Swift也多出了一些新兴概念,这些在OC中是没有的,比如范型、元组等。

    但是:现阶段Swift 到底能不能取代 Objective-C?

    答案是还不行。

    其实到现在为止 Swift 离完全替代 Objective-C 还是很遥远,因为 Apple 内部一直在用 Objective-C 来做一些 Framework 的开发,底层也不可能用 Swift 实现,所以现在更多的替代是体现在外部开发。

    二、Swift比Objective-C有什么优势?

    1、Swift容易阅读,语法和文件结构简易化。

    2、Swift更易于维护,文件分离后结构更清晰。

    3、Swift更加安全,它是类型安全的语言。

    4、Swift代码更少,简洁的语法,可以省去大量冗余代码

    5、Swift速度更快,运算性能更高。

    三、Swift目前存在的缺点

    1、版本不稳定,之前升级Swift3大动刀,苦了好多人,swift4目前还未知

    2、使用人数比例偏低,目前还是OC的天下

    3、社区的开源项目偏少,毕竟OC独大好多年,很多优秀的类库都不支持Swift,不过这种状况正在改变,现在有好多优秀的Swift的开源类库了

    4、公司使用的比例不高,很多公司以稳为主,还是在使用OC开发,很少一些在进行混合开发,更少一些是纯Swift开发。

    5、偶尔开发中遇到的一些问题,很难查找到相关资料,这是一个弊端。

    6、纯Swift的运行时和OC有本质区别,一些OC中运行时的强大功能,在纯Swift中变无效了。

    7、对于不支持Swift的一些第三方类库,如果非得使用,只能混合编程,利用桥接文件实现。

    四、Swift其他功能说明

    1、Swift的内存管理

    Swift使用自动引用计数(ARC)来简化内存管理,与OC一致。

    2、Swift的可选项类型(Optionals)介绍

    Swift引入了可选项类型,用于处理变量值不存在的情况。Optionals类似于OC中指向nil的指针,但是适用于所有数据类型,而非仅仅局限于类,Optionals相比于OC中的nil指针,更加安全和简明,并且也是Swift诸多最强大功能的核心。

    3、Swift中的 !和  ?

    这两个符号是用来标记这个变量的值是否可选,!表示可选变量必须保证转换能够成功,否则报错,但定义的变量可以直接使用;?表示可选变量即使转换不成功也不会报错,变量值为nil,如果转换成功,要使用该变量时,后面需要加!进行修饰。

    4、Swift中范型的简单说明

    范型是用来使代码能安全工作,swift中的范型可以在函数数据和普通数据类型中使用,例如类、结构体或枚举。范型可以解决代码复用的问题,

    举个简单例子:这两个方法很类似,主要就一个参数类型的区别。

          func isIntEqual(x:Int,y:Int) -> Bool {
             return x == y
          }
          func isStringEqual(x:String,y:String) -> Bool {
            return x == y

          }

       我们可以利用范型合并一下:

      func isObjEqual<T:Equatable>(x:T,y:T) -> Bool {
            return x == y
        }

    这样,当我们使用时,我们如果将两个不同类型的数进行比较,编译器会马上提醒我们,从而快速避免这种情况。


    5、Swift的访问权限变更

    swift新增了两种访问权限,权限更细化。具体查看这里:

    访问权限 由大到小 依次为:open,public,internal(默认),fileprivate,private

    6、Swift Foundation框架

    为了方便使用,Swift的基本类型都可以无缝转换到 Foundation 框架中的对应类型。

    因为 Cocoa 框架所接受和返回的基本数据类型都是自身框架内的类型,也就是 Foundation 中所定义的像 NSString,NSNumber,NSArray 等这些东西。而脱离 Cocoa 框架进行 app 开发是不可能的事情。因此我们在使用 Swift 开发 app 时无法避免地需要在 Swift 类型和 Foundation 类型间进行转换。如果需要每次显式地书写转换的话,大概就没人会喜欢用 Swift 了。还好 Swift 与 Foundation 之间的类型转换是可以自动完成的,这使得通过 Swift 使用 Cocoa 时顺畅了很多。

    而且这个转换不仅是自动的,而且是双向的,而且无论何时只要有可能,转换的结果会更倾向于使用 Swift 类型。也就是说,只要你不写明类型是需要 NS 开头的类型的时候,你都会得到一个 Swift 类型。

    所以,Swift中的类型和OC的类型对应关系:

    String - NSString

    Int, Float, Double, Bool 以及其他与数字有关的类型 - NSNumber

    Array - NSArray
    Dictionary - NSDictionary 

    7、Swift便捷的函数式编程

    Swift提供了Map、FlatMap、Filter、Reduce等函数方法,能够大大方便我们对对象处理。

    举例最简单的场景:

    Map:

    var results = [1,3,5,7]
    let results = values.map ({ (element) -> Int in
        return element * 2
    })
    //"[2, 6, 10, 14]"

    Filter:

    var values = [1,3,5,7,9]
    let flattenResults = values.filter{ $0 % 3 == 0}
    //[3, 9]

    Reduce:

    var values = [1,3,5]
    let initialResult = 0
    var reduceResult = values.reduce(initialResult, combine: { (tempResult, element) -> Int in
        return tempResult + element
    })
    print(reduceResult)
    //9 

    五、其他补充

    ========================= swift独有 ==================== 

    1、范围运算符

    a...b 表示 [a,b] 包括a和b 。 (如3...5  就是范围取3,4,5)

    a..<b 表示 [a,b) 包括a,不包括b 。 (如3...5  就是范围取3,4)

    常见的如for循环:for i in 0...9{}

     

    2、独有的元组类型

    元组(tuples)把多个值组合成一个复合值。元组内的值可以使任意类型,并不要求是相同类型。eg:

    var value = (Int,String) = (x:15,y:"abc")

    3、swift中使用let定义常量,var定义变量

    使用常量,更加安全,不能够被修改,在需要对对象进行修改的时候 只能用var修饰.

     

    4、if let 、 guard let 的用法

    缩减代码量,安全处理数据逻辑。

     

    ========================= 细节使用区别 ====================

    1、swift不分.h和.m文件 ,一个类只有.swift一个文件,所以整体的文件数量比起OC有一定减少。

    2、swift句尾不需要分号 ,除非你想在一行中写三行代码就加分号隔开。

    3、swift数据类型都会自动判断 , 只区分变量var 和常量let

    4、强制类型转换格式不同   OC强转:(int)a      Swift强转:Int(a)

    5、关于BOOL类型更加严格 ,Swift不再是OC的非0就是真,而是true才是真false才是假 

    6、swift的 循环语句中必须加{} 就算只有一行代码也必须要加 

    7、swift的switch语句后面可以跟各种数据类型了 ,如Int、字符串都行,并且里面不用写break(OC好像不能字符串)

    8、swift  if后的括号可以省略:  if a>b {},而OC里 if后面必须写括号。

    9、swift打印  用print("")    打印变量时可以  print("\(value)"),不用像OC那样记很多%@,d%等。

    10、Swift3的【Any】可以代表任何类型的值,无论是类、枚举、结构体还是任何其他Swift类型,这个对应OC中的【id】类型。

     

     

     六、Swift的前景

    可能很多人会问,到底该不该学Swift,难度大不大?

    我的理解是:

    如果时间可以,可以试着学习,最好能试着写一点代码,单纯的看书或看教程没太大意义,实践出真知。

    其实最初期的学习,更多的是语法的转变而已,这里的难点是不大的,而Swift的思想我们可以后期慢慢学习并深入体会。

     

    最后,我还是希望Swift发展的越来越好,功能和社区完善的更棒。

     

     七、附上推荐文章链接:

    1、Swift进阶 - 11个技巧

    2、无论你是否主力 Swift, 这些事情你都可以了解一下 

    3、Swift 再等等?我的答案是:快上车



    展开全文
  • SwiftOC 互相调用

    千次阅读 2018-07-20 16:19:07
    Swift 调用 OC Swift 调用 OC 分为两种常见情况,一种是直接在 Application 的 project 中使用;另一种情况是,在 framework 开发中使用。 对于互相调用的原理,如下图所示,更详细的内容可以参考 《Using Swif ...

    Swift 调用 OC

    Swift 调用 OC 分为两种常见情况,一种是直接在 Application 的 project 中使用;另一种情况是,在 framework 开发中使用。

    对于互相调用的原理,如下图所示,更详细的内容可以参考 《Using Swif with Cocoa and Objective-C》

    这里写图片描述

    图 一

    其中最关键的就是三个文件 bridging header(app)、umbrella header(framework)、generated header(swift to OC)。所以主要工作就在于如何生成和指定这些文件。

    Application

    在一个 Swift 开发的工程中可以通过两种方法来生成桥接文件。

    第一种是,直接拖拽 OC 文件到工程中,此时系统会询问是否生成桥接文件,如图:

    这里写图片描述

    选择 “Create Bridging Header” Xcode 就会自动生成桥接需要的文件和修改相关配置。

    另外一种方式是自己指定。桥接文件的命名方式为:ProjectName-Bridging-Header.h,所以先按照这个格式生成一个头文件,然后在 “Build Settings” -> “Swift Compiler - General” -> “Objective-C Bridging Header” 处指定桥接头。

    设置完成后,只要在桥接头中引用相应的 OC 文件就可以在工程中的 Swift 文件中使用对应的 OC 类和方法。

    framework

    framework 中不允许使用桥接头的方式(即不允许指定 “Objective-C Bridging Header” 的值)。在新建一个 framework 的 Project 时,会自动生成一个同名的头文件。比如新建一个工程为 DuAR 的fraework,会自动生成 DuAR.h 文件,这个文件就是 “umbrella header”,如果在这个工程中用到了 OC 源文件或者 OC 写的三方库,就可以在这里引入对应的头文件,从而实现工程中的 Swift 可以使用 OC 类和方法。

    关于 “umbrella header” 还有一个叫 “umbrella framework” 的东西,可以实现 A framework 包含 B framework,但是这种方式不推荐使用。具体请搜索。

    OC call Swift

    在我们新建完一个 Swift 工程的时候,“Swift Compiler - General” 里会有一个叫做 “Objective-C Generated Interface Header Name” 的选项,这个选项里的值为 “ProjectName-Swift.h”,这个文件就是系统生成的 Swift 文件对应的 Objective-C 的头文件。

    当在 OC 文件中调用 Swift 文件中的类的时候,首先在 OC 文件中引用上面提到的头文件,即 #import "ProjectName-Swift.h"。这个文件虽然在工程中看不到,但是她真实存在,编译后,你可以按住Command+单击该文件名,就会看到具体生成的代码。
    引入后,具体类的使用,直接按照OC的方式使用即可。

    这个方法适用于 Application 工程和 framework 工程。

    注意事项

    相比于 OC 的灵活和强大的运行时,Swift 强调更高的安全性。所以 Swift 的运行时很弱,强类型等特点使得未声明为支持 OC 的 Swift 类和方法是不能通过桥接的方式在 OC 文件中使用的。

    如果需要一个 Swift 的类或方法在 OC中可以使用,则必须通过标记的形式告知编译器,即图一中的 @class,同时还有 @objc 等。或者这个类可以直接继承自 NSObject 或其子类,这样也能实现 Swift 类或方法在 OC 中被调用。

    Swift 中有许多 OC 没有的特性。比如,Swift 有元组、特有的枚举等。这些特性也不能够在 OC 中使用。所以,要使用的混编文件要注意 Swift 独有属性问题。

    展开全文
  • SwiftOC的混编

    千次阅读 2018-08-10 20:04:33
    一、OC调用swift文件  在OC项目中创建一个swift文件的时候,Xcode 会提示 需要创建一个桥接文件,如下图:    点确定创建桥接文件,Xcode会自动创建一个桥接文件,其名字为:工程名-Bridging-Header.h ...

    一、OC调用Swift文件

    在OC项目中创建一个swift文件的时候,Xcode 会提示 需要创建一个桥接文件,如下图:

    11

    点确定创建桥接文件,Xcode会自动创建一个桥接文件,其名字为:工程名-Bridging-Header.h

    12

    这个桥接文件是 swift 调用OC文件的时候用的

    1、配置

    进入TARGETS ->Build Settings -> Packaging 中设置Defines Module为YES。
    13

    设置Product Module Name (如:OCBrigdeSwiftDemo),也可以不设置,默认为工程的名字。这个在后面会用到。
    14

    2、 创建xxx.swift文件类:

    
    import UIKit
    
    class Tools: NSObject {
    
        var address:String
    
        var gender:String
    
    
        init(address:String,gender:String) {
    
            self.address = address
    
            self.gender = gender
    
        }
    
    
        func methodprintOC(){
    
            print("msg:\(self.address) + \(self.gender)")
    
        }
    
    }
    
    

    3、文件导入

    在OC需要用到的swift文件中 导入文件 “Product Module Name -Swift.h” 因为 Product Module Name 默认是工程的名字。所以直接导入 #import “工程名-Swift.h”,【该文件没有提示、是能手写补充】

    
    #import "ViewController.h"
    
    #import "OCBrigdeSwiftDemo-Swift.h"
    
    

    ###4.方法调用

    记着写完先command+B编译一下,如果没有报错就可以在OC文件调用swift中的类了

    
    #import "ViewController.h"
    
    #import "OCBrigdeSwiftDemo-Swift.h"
    
    @interface ViewController ()
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
    
        [super viewDidLoad];
    
        [self ocBridgeSwift];
    
    }
    
    #pragma mark - method
    
    ///oc初始化调用swift方法
    
    -(void)ocBridgeSwift{
    
        Tools *tools = [[Tools alloc]initWithAddress:@"地址" gender:@"性别"];
    
        [tools methodprintOC];
    
    }
    
    - (void)didReceiveMemoryWarning {
    
        [super didReceiveMemoryWarning];
    
    }
    
    @end
    
    

    二、Swift调用OC文件

    • 只要把swift需要用到的OC文件的头文件放到桥接文件里 工程名-Bridging-Header.h

    示例:

    ####1、创建一个oc的文件(OTools)

    
    +(void)logWithAddress:(NSString *)address gender:(NSString *)gender{
    
        NSLog(@"打印日志:\n 地址:%@ 性别:%@",address,gender);
    
    }
    
    -(void)logByAddress:(NSString *)address gender:(NSString *)gender{
    
        [OTools logWithAddress:address gender:gender];
    
    }
    
    

    ####2、在 xxx-Header.h文件中添加头文件

    
    #import "OTools.h"
    
    

    ####3、调用

    command+s [混编时,每次代码更新都要保存,不然无法调用]保存文件

    
        override func viewDidLoad() {
    
            super.viewDidLoad()
    
            self.initBaseData();
    
        }
    
    
        func initBaseData(){
    
            OTools .log(withAddress: "北京市", gender: "男");
    
            let tools = OTools.init()
    
            tools.log(byAddress: "福建省", gender: "女");
    
        }
    
    

    ##三、注意和总结

    注意:

    1、OC项目在导入swift文件前 先按照系统提示创建桥接文件,

    2、在 targets -> Build Settings -> Packaging 中设置Defines Module 为YES

    3、OC中调用swift文件需要导入”工程名 -Swift.h"

    (这个是build Setting -> Packaging->Product Module Name 的名字,而这个属性默认是工程的名字)
    

    4、每次写完记得command + B 编译 一下

    5、swift项目 引用OC文件也需要创建 桥接文件,在这个桥接文件中导入OC文件的头文件

    6、桥接文件只有一个,作用只是为了 swift 引用OC文件,OC引用swift 文件虽然也需要创建桥接文件,但是不需要在桥接文件中 导入swift文件

    7、如果一个项目既有OC引用swift也有swift引用OC,就先设置OC调用swift文件,在桥接文件 导入OC文件,OC可以定义PCH文件导入”工程名 -Swift.h"

    ##四、自定义桥接文件

    如果不用Xcode提示创建桥接文件也可以自定义一个桥接文件

    1、使用 Header File 创建,把里面的内容清空。

    2、这文件名可以自定义, 一般还是用工程名-Bridging-Header.h。

    3、然后在 Build Setting -> Bridging Header 中 设置Objective-C Bridging Header 为自定义的桥接文件相对于工程的绝对路径,也就是项目总文件夹的路径,如果在第一层,就直接写自定义的桥接文件的名file.h,如果在下一层,文件夹/桥接文件 app/file.h
    15

    4、最后进入TARGETS ->Build Settings -> Packaging 中设置Defines Module为YES

    展开全文
  • OCswift区别

    千次阅读 2019-04-03 10:07:42
    3.因为swift 定义的常亮变量是没有值的,所以引入了可选的概念,这时候 如果swift没有值的话 就用optional 4.在swift 中,let 声明的常量的值不能改变 var 生命的变量的值是可以改变的 在swift 中 继承里面写...

    swift 是在oc上提出来的
    swift中有oc中没有的类 比如 元组 有泛型
    3.因为swift 定义的常亮和变量是没有值的,所以引入了可选的概念,这时候 如果swift没有值的话 就用optional

    4.在swift 中,let 声明的常量的值不能改变 var 生命的变量的值是可以改变的

    1. 在swift 中 继承里面写final防止被重写
    2. 类型的转换 as
      7.oc 是动态语言有runtime swift 是静态语言,oc是将数据类型的确定由编译时 推迟到了 运行时
      8.swift 提供了map, flatmap, filter, reduce
      9.文件上没有.h.m之分

    swift 优势

    swift 更容易阅读
    swift 文件分离更清晰
    swift 是类型安全类语言
    swfit 速度快 运行性能高

    缺点
    版本不稳定



    作者:化身孤岛的鲸_ca35
    链接:https://www.jianshu.com/p/c936b15b49e7
    来源:简书
    简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

    展开全文
  • Swift Swift和OC混编

    千次阅读 2016-05-02 16:31:03
    难得的五一小长假,就有空简单的谢谢Swift和OC的混合编程的Demo。1.新建一个空的Swift项目 注意语言选择Swift。2.新建一个OC的控制器 注意语言选择OC。3.这一步很重要 一定要点击红框中的按钮。4.设置桥接文件...
  • oc调用swift: 需要在暴露出来的方法属性上加@objc否则不可用。需要在工程配置里面做一些小改动。 具体设置内容可以参考: https://www.jianshu.com/p/754396e7e1bd https://www.jianshu.com/...
  •  1、swiftOC更年轻,这意味着swift 可以采用其它语言优秀的语言特性,使swift更简洁、容易阅读维护,采用更少的代码编写更多的东西。  比如OC独有的中括号被人诟病,以及OC语言异步编程block嵌套后对齐的方.....
  • swift-01-简述swiftOC区别

    千次阅读 2015-08-11 10:54:40
    swift语言 Swift是Apple在WWDC2014所发布的一门编程语言,用来撰写OS XiOS应用程序[1]。...Swift是供iOSOS X应用编程的新编程语言,基于CObjective-C,而却没有C的一些兼容约束。Swift
  • Swift对比OC 快速、现代、安全、互动,而且明显优于 Objective-C 语言; 可以使用现有的 Cocoa Cocoa Touch 框架; Swift 取消了 Objective-C 的指针/地址等不安全访问的使用; 提供了类似 Java 的名字空间...
  • Swift和OC混编

    2019-01-07 17:51:48
    Swift和OC混编,OC项目下Swift和OC的互相调用,Swift项目下Swift和OC的相互调用!
  • swift和oc枚举的区别

    千次阅读 热门讨论 2020-10-14 15:34:24
    swift 1.case后面可以用逗号隔开写很多枚举值 2.枚举里可以写方法 3.枚举的rawValue可以是Float(float也是赋值的后面依次+1)或是String,或是没有 enum Suit{ case spades, hearts, diamonds, clubs func simple...
  • 学习Swift也有一段时间了,但一直以来都是主打OC语言在开发项目。在这里也对Swift这门语言做个笔记。方便自己也方便大家。现在先不说Swift具体的...所有的Swift底层,框架都是使用OC来实现的,所以呢,Swift 可以Co
  • Swift和OC相互调

    2016-08-04 22:40:59
    在项目中不免会有多中语言开发, 不说别的就我个人而言, 之前一直都是用 OC 写的代码, 封装很多工具类, 而苹果新出来 Swift , 现在项目在向 Swift 过渡, 或者新项目是 Swift , 不想浪费时间用 Swift 封装工具类, 再说...
  • Swift是一门更加现代化的语言,但是目前还在成长阶段,更新改动比较大,虽然说其底层思想不变,变的是API接口,但是每次更新完Xcode看到自己的Swift项目还是有些淡淡的忧伤,而且目前Swift开发都要转成OC的...
  • Swift 语言出来后,可能新的项目直接使用swift来开发,但可能在过程中会遇到一些情况,某些已用OC写好的类或封装好...这里主要介绍swift类中调用OC方法和swift类中调用C函数以及OC类中调用swift的函数这三种类型的混编.
  • iOS之swift和OC混编、桥接

    千次阅读 2018-01-26 11:55:27
    参考:https://www.cnblogs.com/mazhiqiang/p/5557002.html=============swift中...在swift项目中创建一个OC文件的时候,Xcode 会提示创建一个桥接文件 点确定创建桥接文件,Xcode会自动创建一个桥接文件名字:工...
  • 一、共同点 本质都是抽取不同类的共同方法属性(声明),供遵循协议的类或对象使用。 都可以通过定义协议实例deleagate,来实现委托代理模式。...1、Swift可以通过协议extension扩展,缺省实现协议的方法(OC不行)。
  • 使用CocoaPods 0.36 管理swift和OC三方框架
  • 第一:swift->oc 这个相对简单一点, 在自动生成的桥接文件中导入你要掉的oc文件名就可以了, 如果没有生成桥接文件也可以自己手动创建(Header File) 第二:oc->swift Bulid Settings-->packaging--...
  • swift相比oc的优势

    2016-07-20 01:51:33
    oc头文件.h实现文件.m合并成了一个代码文件.swift 3/更安全 可选类型使得一个nil可选值的可能性变得非常明确,可以让程序员带着目标去写代码,问题在代码被写时就可以被修复,大大节省了你要在修复有关来自OC指针...
  • iOS开发(Swift)——Swift和OC的互用

    千次阅读 2017-01-16 12:28:22
    Briding-header.h是Swift和OC的桥接文件,没有是不行的 如何新建:一般情况,在Swift工程中新建一个OC类,或者在OC工程新建一个Swift类,系统就会提示你是否创建,选择是就行了,然后再删除你刚刚创建的无用文件。...
  • swift OC 混合编译的问题

    千次阅读 2015-06-13 01:54:29
    最近在学习swift,很想在之前OC的项目中使用swift 开始的时候,上手还算比较快,下面记录下简单的一些坑。 1.由于接触的swfit一些教程,所以准备在已有的OC里面使用swift,按照教程,没问题,但是我在原来的OC中...
  • swift和OC的区别联系

    2019-09-27 16:07:20
    2、swift和OC公用一套运行时环境,swift的类型可以桥接到OC ,反之亦然 二、现阶段swift能完全取代Objective-C么? 不行,因为apple内部一直在用Objective来做一些Framework的开发,底层也不可能用swift来实现,所以现在...
  • Swift和OC混用

    千次阅读 2015-08-14 11:40:22
    记得去年在北京一家公司的时候就使用了swift和OC混编。然后就是在写OCswift关注度不够。在这里想写一下swift和OC混用的一些简单使用方法,如果有错误 请批评指正. 在一个应用的 target 中导入一些 Objective-C ...
  • Xcode创建Swift和OC的桥接文件

    千次阅读 2016-06-20 08:36:26
    转自:... 1.项目上右键,New File选择Header File,选择文件目录,然后确定。...2.点击项目-->TARGETS-->Build Settings中找到Swift Compiler,里面有一项:Objective-C Bridging Head
  • swift oc混编 找不到头文件等问题

    千次阅读 2018-05-03 10:42:49
    1 swift项目,找不到第三方文件,exp:AFN.h找不到,要修改build settings 里的User header custome search paths ,改成${SRCROOT},选择recursive.2 oc项目找不到swift文件,要引入工程名-swift.h文件。A.设置...
  • swift enum 和OC兼容

    千次阅读 2015-07-09 16:02:25
    虽然说swift是基于OC的,但是swift和OC还是有很多去别的,今天我们来说一下枚举变量 下面是某个免费短信验证码的验证方法的返回状态 enum SMS_ResponseState { SMS_ResponseStateFail = 0, SMS_...
  • swift和oc混编的时候,在swift中调用oc代码的时候总是会有optional,必须要解包,很麻烦。在xcode6.3中添加新特性_Nullable(可空)_Nonnull(非空),只要类型是对象指针就可以用使用。oc:#import &lt;...
  • swiftOC混编(创建混编工程)

    千次阅读 2016-01-26 00:17:41
    就在15年WWDC上更是把Swift进行了开源,瞬间star就开始不断飙升,截止今天(16年1月25)已经达到26059个star【源码请点击这里】,而且每天还都在不断增长,而且每天都会有Pull Requests。这足以说明全球开发者对这门...
  • SwiftOC的区别

    千次阅读 2017-06-13 16:06:32
    SwiftOC的差异基础语法 声明使用letvar关键字,Swift可以推出出类型,let声明的常量不可修改,var声明变量。 Swift对数据要求严格,不存在隐式转换,强制转换格式:int(a) 使用整数类型的 min max 属性来获取...

空空如也

1 2 3 4 5 ... 20
收藏数 20,079
精华内容 8,031
关键字:

swift和oc