gpt4 book ai didi

swift - 使用 objective-c++ 中的 swift (4.0) 类

转载 作者:搜寻专家 更新时间:2023-11-01 05:33:23 24 4
gpt4 key购买 nike

如何在 ios-project 中使用 objective-c++ 的 swift 类?

Apple 文档仅讨论 objective-c :https://developer.apple.com/library/content/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html

我试过这样做-

Console.swift

public class Console : NSObject {
public func Dump() -> Void {
let log = OSLog(subsystem: Bundle.main.bundleIdentifier!, category: "Console")
os_log("url = %@", log: log, "Some thing here")
}
}

ConsoleDelegate.hpp

#ifndef ConsoleWrapper_h
#define ConsoleWrapper_h
#import <Foundation/Foundation.h>
#import <Interop-Swift.h>

@interface ConsoleDelegate : NSObject {
@private
Console* console;
}

- (ConsoleDelegate*) init;
- (void) DumpWrapper;
@end
#endif /* ConsoleWrapper_h */

ConsoleDelegate.mm

#import "ConsoleDelegate.hpp"
#import <Foundation/Foundation.h>

@implementation ConsoleDelegate

- (ConsoleDelegate*) init {
console = [[Console alloc] init];
return self;
}

- (void) DumpWrapper {
[console Dump];
}
@end

但我得到的错误是 -

/path/to/file/Interop-Swift.h:192:39: No type or protocol named 'UIApplicationDelegate'

如果我重命名 ConsoleDelegate.mm -> ConsoleDelegate.m 那么它编译没有任何错误。

最佳答案

好吧,我所要做的就是将 UIKit 包含在 ConsoleDelegate.hpp 中。

#ifndef ConsoleWrapper_h
#define ConsoleWrapper_h

#import <UIKit/UIkit.h>
#import <Foundation/Foundation.h>
#import <Interop-Swift.h>

@interface ConsoleDelegate : NSObject {
@private
Console* console;
}

- (ConsoleDelegate*) init;
- (void) DumpWrapper;
@end
#endif /* ConsoleWrapper_h */

关于swift - 使用 objective-c++ 中的 swift (4.0) 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48877507/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com