• ios oc调用swift framework


    1.oc 调用swift

    /*oc调用swift,  project name为DeomOC:
     1.oc工程DemoOC中显式创建一个swift文件,生成DemoOC-Bridging-Header.h
     2.#import "DemoOC-Swift.h"
     https://developer.apple.com/library/content/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html
    */
    #import "DemoOC-Swift.h"
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        swifttest *tests = [swifttest new];
        NSLog(@"%@", [tests test]);
    }
    
    
    //  swifttest.swift
    //  DemoOC
    import Foundation
    
    class swifttest:NSObject {
        func test() -> String {
            return "hi "
        }
    }

    2.调用swift framework

    碰到问题及解决方法:ios dyld: Library not loaded: @rpath/xxx.framework/xxx 之根本原因

     
    oc调用swift framework注意点:
    • class 需继承自NSObject,且public属性才能暴露给oc
    • 函数名转换规则:swift func  foo(para1:...) -> oc  fooWithPara1
    • oc不支持重载,但根据转换规则可以给第一个参数不同的名字,转换的函数名不一样就可以
    • 不支持struct的转换,需用 class
    • enum必须为整型才能转换
    • 函数返回值不支持tuple
     
  • 相关阅读:
    HDU
    洛谷- P1306 斐波那契公约数
    HDU
    HDU
    POJ3321
    SPOJ
    HDU
    POJ 1236 Network of Schools
    POJ-3169 Layout (差分约束+SPFA)
    POJ-1062 昂贵的聘礼 (最短路)
  • 原文地址:https://www.cnblogs.com/mlj318/p/6689564.html
Copyright © 2020-2023  润新知