美文网首页
Swift 与OC 混编

Swift 与OC 混编

作者: rhc2008 | 来源:发表于2021-05-22 18:18 被阅读0次

NS_SWIFT_NAME: 在OC中,重新命名在swift中的名称

NS_SWIFT_UNAVAILABLE ,在Swift中不可见,不能使用

1.对于自定义的类而言,OC的类,不能继承Swift的类,即要混编的OC类不能是Swift类的子类

反过来,需要混编的Swift类可以继承自OC的类

2. swift没有宏定议的,用相应的替换

```Objective-C

#define TOOLLABAR_HEIGHT44

let TOOLLABAR_HEIGHT = 44

```

 常量不变化值

#define SCREEN_WIDTH ([[UISCREEN mainScreen]bounds].size.width)

let SCREEN_WIDTH= UISCreen.mainScreen().bounds.size.width

 常量变化值

#define STATUS_BAR_HEIGHT ([UIApplication sharedApplication].statusBarFrame.size.height);

func STATUS_BAR_HEIGHT() -> CGFloat {

    return UIApplication.sharedApplication().statusBarFrame.size.height

}

带参的宏

#define RGB_COLOR(r,g,b) [UIColor colorWithRed:r/255.f green:g/255.f blue:b/255alpha:1.0]

func RGB_COLOR(r:CGFloat,g:CGFloat,b:CGFloat) -> UIColor {

    return  UIColor(red:r,green:g,blue:b,alpha:1.0)

}

3.swift的独有特性,如果要提供给OC中调用,不要使用OC中没有的特性

swift中有许多OC没有的特性,比如,元组为一等公民函数,还有特有的枚举类型,所以要使用的混编文件要注意Swift独有属性问题

 4.OC API和SWIFT的风格相差比较大,SWIFT调用OC的API 时可能由于数据类型等不一致无法达到预期

(OC方法采用C语言风格的多参类型,OR OC

方法返回NSNotFound,在Swift中期望返回nil),这时候就要 NS_REFINED_FOR_SWIFT了

@interface MyClass:NSObject

-(NSUInteger)indexOfString:(NSString*)aString NS_REFINED_FOR_SWIFT:

@end

@implementation MyClass

-(NSUInteger)indexOfString:(NSString*)aString  {

    return  NSNotFound;

}

@end

extension MyClass {

    funcindexOfString(aString:String!) ->Int? {

        letindex = Int(__index(of:aString))

        if(index == NSNotFound) {

            returnnil

        }

        returnindex

    }

}

相关文章

  • Swift

    混编 15、OC与Swift的混编_海森堡_lichangan的博客-CSDN博客_oc swift 混编[htt...

  • oc Swift 混编

    oc Swift 混编 oc 项目 混编Swift1.1 oc 调用 Swift 的类 和 方法步骤: ...

  • OC与Swift混编 / Mix & Match

    OC与Swift混编 / Mix & Match OC in Swift 通过Header File创建Bridg...

  • 自制Framework:swift与OC混编,自定义module

    为何要swift与oc混编 在ios开发中,swift与oc的混编,几乎是不可避免的。2014年,Apple在开发...

  • OC与Swift混编

    OC与Swift混编 一.objectivec与Swift相互调用对照 OC interface文件如下 转换后对...

  • Swift与OC混编

    Swift与OC混编:OC文件使用Swift文件时,引入#import (项目名字)-Swift.h。(系统帮我们...

  • iOS开发之一Swift与OC混编

    Swift与OC混编:OC文件使用Swift文件时,引入#import (项目名字)-Swift.h。(系统帮我们...

  • OC和Swift混编手动创建桥接文件及命名空间

    Obj-C混编Swift && Swift混编Obj-C Swift引用OC实现通过桥接头文件,OC引用Swift...

  • OC和Swift混编一

    OC工程下混编 Swift工程下混编请查看OC和Swift混编二 1.建一个OC工程命名为OCTestSwift ...

  • swift与OC混编

    swift与OC混编的总结 现在的swift开发多数会用到混编。swift和oc是通过桥接文件来实现的。无论是在o...

网友评论

      本文标题:Swift 与OC 混编

      本文链接:https://www.haomeiwen.com/subject/hikojltx.html