目前在學習Swift怪瓶,3.0已發(fā)布,所以就從3.0開始吧践美,在編寫項目中洗贰,遇到了字典轉模型的需求,一直以來陨倡,比較習慣使用MJExtension敛滋,于是研究了一下,現(xiàn)在將研究結果發(fā)布:
創(chuàng)建的文件有:模型兴革、字典轉模型绎晃、Swift的調用文件蜜唾,還有一個重要的文件——橋接文件,用來橋接OC和Swift庶艾,創(chuàng)建橋接文件還需要在TARGETS——Build Srttings——Objective-C Bridging Header中設置路徑:
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
/** 模型數(shù)組 */
@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中查看數(shù)組items,拿不到想要的結果咱揍,但是直接取模型屬性是可以的颖榜,不知道是swift不完善還是哪里沒處理好,后續(xù)再研究煤裙。