美文网首页
MJExtension之Swift——OC和Swift混编

MJExtension之Swift——OC和Swift混编

作者: Super_Yi | 来源:发表于2016-10-26 09:51 被阅读392次

目前在学习Swift,3.0已发布,所以就从3.0开始吧,在编写项目中,遇到了字典转模型的需求,一直以来,比较习惯使用MJExtension,于是研究了一下,现在将研究结果发布:

Paste_Image.png

创建的文件有:模型、字典转模型、Swift的调用文件,还有一个重要的文件——桥接文件,用来桥接OC和Swift,创建桥接文件还需要在TARGETS——Build Srttings——Objective-C Bridging Header中设置路径:

Paste_Image.png

YCWhiteList-Bridging-Header.h文件中导入OC类的头文件:


#import "DictToModel.h"
#import "WhiteListItem.h"

接下来看代码:
模型 WhiteListItem.h


#import <Foundation/Foundation.h>

@interface WhiteListItem : NSObject

@property (strong, nonatomic) NSString *bankName;
@property (strong, nonatomic) NSString *companyId;
@property (assign, nonatomic) BOOL isSel;

@end

DictToModel.h


#import <Foundation/Foundation.h>

@interface DictToModel : NSObject

/** 模型数组 */
@property (strong, nonatomic) NSArray *items;

- (NSArray *)getItemsWithArray:(NSArray *)array;

@end

DictToModel.m


#import "DictToModel.h"
#import "WhiteListItem.h"
#import "MJExtension.h"

@implementation DictToModel

- (NSArray <WhiteListItem *>*)getItemsWithArray:(NSArray *)array{
    _items = [WhiteListItem mj_objectArrayWithKeyValuesArray:array];
    return _items;
}

@end

Swift中的使用:
JFBankWhiteListController.swift


import UIKit

class JFBankWhiteListController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        let datas = [["bankName" : "湖北银行","companyId" : "1"],["bankName" : "招商银行","companyId" : "2"],["bankName" : "汉口银行","companyId" : "3"],["bankName" : "华夏银行","companyId" : "4"],["bankName" : "浦东银行","companyId" : "5"],["bankName" : "武汉银行","companyId" : "6"],["bankName" : "建设银行","companyId" : "7"],["bankName" : "工商银行","companyId" : "8"]]
        
        let DTM = DictToModel()
        let items : Array<WhiteListItem> = DTM.getItemsWith(datas) as! Array<WhiteListItem>
        
        let bankItem = items[0];
        let bankName = bankItem.bankName
        print("----\(bankName)")
    }
}

在使用的过程中,直接在swift中查看数组items,拿不到想要的结果,但是直接取模型属性是可以的,不知道是swift不完善还是哪里没处理好,后续再研究。

相关文章

  • oc Swift 混编

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

  • Swift 和 OC 混编之 framework

    Swift 和 OC 混编之 framework 在主工程为 Swift 的 framework 中引用 OC 代...

  • MJExtension之Swift——OC和Swift混编

    目前在学习Swift,3.0已发布,所以就从3.0开始吧,在编写项目中,遇到了字典转模型的需求,一直以来,比较习惯...

  • OC和Swift混编二

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

  • Swift和OC混编出现的桥接问题

    1.如果是自己的项目要进行Swift和OC混编 请参考 oc 和 swift混编之自建桥接文件 作者:水墨九 进行...

  • Swift(总)

    Swift目录如下: Objective-C和Swift混编指南-s混编-OC&Swift[https://www...

  • OC和Swift混编一

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

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

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

  • Swift

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

  • OC Swift文件混编

    一.Swift 类可以继承 OC 类,OC 类不能继承 Swift 类。 二.Swift 和 OC 混编 三.两个...

网友评论

      本文标题:MJExtension之Swift——OC和Swift混编

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