Pat*_*ick 2 struct objective-c swift
我在Objective-C中有一个带有此结构的框架:
VehicleClass.h
struct VehicleStruct
{
__unsafe_unretained NSString *const CAR;
__unsafe_unretained NSString *const MOTORCYCLE;
__unsafe_unretained NSString *const TRUCK;
};
Run Code Online (Sandbox Code Playgroud)
VehicleClass.m
#import "VehicleClass.h"
const struct VehicleStruct Vehicle = {
.CAR = @"CAR",
.MOTORCYCLE = @"MOTORCYCLE",
.TRUCK = @"TRUCK"
};
Run Code Online (Sandbox Code Playgroud)
在我的Contansts.h中
extern const struct VehicleStruct Vehicle;
Run Code Online (Sandbox Code Playgroud)
好吧,现在我想使用swift在我的proyect中获得汽车价值:
let carValueSwift = String(Vehicle.CAR)
Run Code Online (Sandbox Code Playgroud)
在控制台中:
“非托管NSString(_value:CAR)”
我该如何解决?我需要像NSString这样的值,因为如果要在我的框架中进行比较:
["CAR" isEqual: carValueSwift] 不起作用。
非常感谢你
与takeUnretainedValue()所述Unmanaged<NSString>被转换到NSString(没有取得所有权),并且这可以被简单地转换为夫特String:
let carValueSwift = Vehicle.CAR.takeUnretainedValue() as String
print(carValueSwift)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
381 次 |
| 最近记录: |