Swift语言调用Objective-c

Swift语言调用Objective-c,第1张

概述在Swift语言中可以直接调用Objective-C的类库,比如Foundation框架。 下面是一个简单的Objective-C的Hello World实现。 #import <Foundation/Foundation.h>int main(int argc, const char* argv[]){ @autoreleasepool { //初始化字符串,类型为

在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所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1080777.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存