Xi *_*Zhu 3 types objective-c swift
我正在研究一个混合的Objective-C和Swift项目.我有一个名为PointObjective-C的类,它有int属性和初始化器:
@property (nonatomic) int column;
@property (nonatomic) int row;
- (id) initWithColumn:(int)column row:(int)row;
Run Code Online (Sandbox Code Playgroud)
我用它来创建一个Swift文件中的对象:
Point(column: Column, row: Row)
Run Code Online (Sandbox Code Playgroud)
但它给出了一个错误:
无法使用类型为'{(column:Int,row:Int)'的参数列表调用'init'
通过进一步检查,我发现intObjective-C 中的这些属性变为Int32Swift,并且Int32无法转换为Int.有谁知道如何解决这一问题?
我想知道Objective C int如何成为Swift中的Int32以及如何处理这个以便我可以在Objective C中使用Swift中的Int类型?我经常使用这个类,并且更喜欢保持类型一致而不是每次都进行转换.
你可能应该避免int在Objective-C中使用NSInteger而是使用它来映射到Swift Int.
无论如何,如果你需要一个转换Int的变量,比如n,对Int32,你可以用它做
var n32: Int32 = Int32(n)
Run Code Online (Sandbox Code Playgroud)
所以你的代码会是
Point(column: Int32(Column), row: Int32(Row))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2738 次 |
| 最近记录: |