从 Objective C 类调用 Swift 方法
Posted
技术标签:
【中文标题】从 Objective C 类调用 Swift 方法【英文标题】:Calling a Swift Method from Objective C class 【发布时间】:2014-10-20 23:57:01 【问题描述】:我想在一个swift类和一个objective-c类之间创建一个继承。
swift类创建一个人,objective c类创建一个学生(也是一个人)
我的快人是:
import Foundation
class person
var age: Int
var height: Float
init()
self.age = 22
self.heigh =1.80
init(age:Int, height:Float)
self.age=age
self.height=height
Objective-c 学生是:
学生.h:
#import <Foundation/Foundation.h>
#import "Praktikum2a-Swift.h"
@interface student : person
@property (nonatomic) int studentID;
-(void)setStudentID:(int)stdID;
@end
学生.m:
#import <Foundation/Foundation.h>
#import "Praktikum2a-Swift.h"
#import "student.h"
@implementation student
-(id)init
return [self initWithStudentID:1337];
-(id)initWithStudentID:(int)stdID
self=[super init];
if(self)
[self setStudentID:stdID];
@end
还有主要的:
#import <Foundation/Foundation.h>
#import "student.h"
int main(int argc, const char * argv[])
@autoreleasepool
student *hugo = [[student alloc] init];
[hugo setAge: 22 setHeight: 1.80];
NSLog(@"Hello, World!");
return 0;
项目和包名称是 Praktikum2a
基本上我想不通,为什么我的学生不是人... =/
【问题讨论】:
mixing objective-c and swift when subclassing的可能重复 附带说明,类名应始终大写。 所以我不能在目标 c 中子类化 swift 类? =/ 【参考方案1】:这个页面上写着:https://developer.apple.com/library/ios/documentation/swift/conceptual/buildingcocoaapps/MixandMatch.html#//apple_ref/doc/uid/TP40014216-CH10-XID_77
请注意,您不能在 Objective-C 中子类化 Swift 类
【讨论】:
以上是关于从 Objective C 类调用 Swift 方法的主要内容,如果未能解决你的问题,请参考以下文章
是否可以使用情节提要从 swift 类中调用 Objective c 视图控制器类?
从 Swift 调用 Objective C 自定义初始化函数
从 Swift 调用 Objective C 和 C 传递回调函数