在Swift语言中可以直接调用Objective-C的类库,比如Foundation框架。
下面是一个简单的Objective-C的Hello World实现。
#import <Foundation/Foundation.h>int main(int argc,const char* argv[]){ @autoreleasepool { //初始化字符串,类型为Nsstring Nsstring *string = [ [Nsstring alloc] initWithFormat:@"%@ %@",@"Hello",@"World"]; //调用lowercaseString属性,将字符串转换为小写 string = [string lowercaseString]; //替换其中的world为objective-c string = [string stringByReplacingOccurrencesOfString:@"world" withString:@"objective-c"]; ////输出结果 NSLog(@"%@",string); }}
下面是用Swift语言版本的实现。
import Foundationvar string = Nsstring(format: "%@ %@","hello","world")string = string.lowercaseStringstring = string.stringByReplacingOccurrencesOfString("world",withString: "swift")print(string)
在Swift语言中,文件头部用import Foundation导入Foundation框架,初始化对象无需调用alloc方法,Objective-C初始化对象一般需要调用initWith开头的方法。Swift语言初始化对象只需要对象的名称加上括号即可,在括号中传参。
在Swift中调用Objective-C代码。新建一个Swift语言的项目,新建objective-c的头文件(Calculator.h)和实现文件(Calculator.m),添加.m文件时Xcode会提示是否创建Objective-C brIDing头文件,选Yes,会自动创建一个头文件,格式是”项目名-BrIDging-header”,在桥接文件中里写上 #include “Calculator.h”。
各文件代码如下:
Calculator.h
#ifndef Calculator_h#define Calculator_h#include <Foundation/NSObject.h>@interface Calculator : NSObject@property (nonatomic,assign) int first;@property (nonatomic,assign) int second;-(ID) init;//空构造函数-(ID) initWithFirst:(int)first second:(int) second;//带参数的构造函数-(int)add;//加-(int)sub;//减@end#endif /* Calculator_h */
Calculator.m
#include "Calculator.h"@implementation Calculator@synthesize first;@synthesize second;-(ID) init{ if (self = [super init]) { self.first = 1; self.second = 1; } return self;}-(ID) initWithFirst:(int)newFirst second:(int)newSecond{ if (self = [super init]) { self.first = newFirst; self.second = newSecond; } return self;}-(int)add{ return self.first + self.second;}-(int)sub{ return self.first - self.second;}@end
TestSwift-BrIDging-header.h
#include "Calculator.h"
main.swift
import Foundationvar cal = Calculator()print(cal.add())print(cal.sub())cal = Calculator(first:20,second:2);print(cal.add())print(cal.sub())
输出结果:
2
0
22
18
结果符合预期.
参考资料: 1.《Swift语言实战入门》,人民邮电出版社,伍星、罗飞等著.
总结以上是内存溢出为你收集整理的Swift语言调用Objective-c全部内容,希望文章能够帮你解决Swift语言调用Objective-c所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)