【发布时间】:2017-12-27 21:50:06
【问题描述】:
我必须进行按位运算,由于某种原因只能在 swift 中进行,因此我希望使用 Objective-C 初始化一些常量,以便在我的应用程序中使用。
我对 Objective-c 还不是很好,所以我知道如何做到这一点的唯一方法是创建一个类并给它一个返回值的方法,但我认为有一个更有效的值。
必须有更简洁的方法来实现这一点。目前我正在做以下事情:
标题:
#import <Foundation/Foundation.h>
#include <simd/simd.h>
#import <MetalKit/MetalKit.h>
#import <Metal/Metal.h>
@interface Bridge:NSObject
@property NSString *url;
- (MTLTextureUsage)readAndWrite;
@end
实施:
#import "MPS-Bridging-Header.h"
@implementation Bridge
- (MTLTextureUsage)readAndWrite {
return MTLTextureUsageShaderRead | MTLTextureUsageRenderTarget | MTLTextureUsageShaderWrite;
}
@end
Swift 用法:
let bridge = Bridge()
Texture.usage = bridge.readAndWrite()
如果能简化成喜欢就好了
MTLTexReadAndWrite 好像它是一个常数,或者可能有它,以便我可以做 Bridge().readAndWrite() 所以它都在一条线上?
【问题讨论】:
-
为什么需要objective-c?
-
在 Swift 中几乎任何事情都可以在 ObjectiveC 中完成,反之亦然。你认为在 Swift(或 ObjectiveC)中需要做什么?
-
这闻起来像XY problem。是否需要从both Swift 和 ObjC 读取该值?还是仅来自其中一个?如果只有一个,哪个? “出于某种原因,只能在 swift 中实现”是什么意思?
标签: objective-c swift xcode bridging-header