OC调用Swift
发布时间:2020-12-14 02:02:33 所属栏目:百科 来源:网络整理
导读:修改main.m文件 #import Foundation/Foundation.h#import "Root.h"int main(int argc,const char * argv[]){ @autoreleasepool { Root *rt = [[Root alloc] init]; [rt desc]; } return 0;} OC文件:Root.h #import Foundation/Foundation.h//Objective-c 的
修改main.m文件 #import <Foundation/Foundation.h> #import "Root.h" int main(int argc,const char * argv[]) { @autoreleasepool { Root *rt = [[Root alloc] init]; [rt desc]; } return 0; } OC文件:Root.h #import <Foundation/Foundation.h> //Objective-c 的头文件如果需要引用Swift的类,则可以使用下面这种方式 @class Person; @interface Root : NSObject -(Person *)returnPerson; -(void)desc; @end Root.m #import "Root.h" //Objective-c调用Swift //需要导入固定的头文件,此头文件项目里面找不到,但却是存在。并且会自动把Swift类转换成OC的类,在里面能找到 //格式为 #ProductName#-Swift.h #import <OC_Swift-Swift.h> @implementation Root -(void)desc { Person *ps = [[Person alloc] initWithName:@"Rose"]; ps.name = @"Jack"; [ps desc]; } -(Person *)returnPerson { Person *ps = [[Person alloc] initWithName:@"Tom"]; return ps; } @end Swift文件:Person.swift import Foundation //如果此类需要被OC的类来调用,一定要继承自NSObject class Person : NSObject { var name: String { willSet { NSLog("将要把名字设置为:" + name) } } override init() { self.name = "" } init(name: String) { self.name = name } func desc() { print("这是一个Swift的类,name: " + self.name) } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ruby-on-rails – RSpec:哪个是测试授权的正确位置?
- 二分查找法 C#实现
- ORACLE“监听程序未启动或数据库服务未注册到该监听程序”解
- c# – System.Web.Routing.RouteCollection.GetRouteData中
- .net – ‘System :: String ^’到’LPCWSTR’
- Cocos2d-x 3.9 + VS2012 + BabeLua 如何搭建cocos2dx lua环
- .NET Core中的一个接口多种实现的依赖注入与动态选择看这篇
- c# – 无法获得在VS2010中使用IISOle对象的引用
- 与XML Schema一起使用的表示法的名称
- 详解Cocos2d-X中宏CC_DLL