xcode – SCNPhysicsWorld错误

前端之家收集整理的这篇文章主要介绍了xcode – SCNPhysicsWorld错误前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我一直在搞乱 swift并试图让Physicsworld工作.

这是我得到的错误
“架构i386的未定义符号:
  “_OBJC_CLASS _ $_ SCNPhysicsWorld”,引自:
      GameViewController.o中的__TFC3sk218GameViewController11viewDidLoadfS0_FT_T_
ld:找不到架构i386的符号
clang:错误链接器命令失败,退出代码为1(使用-v查看调用)

我认为它与链接或导入我不是的库有关,但我已经添加了我认为可以解决的所有内容(在游戏工具包的其他帖子中找到)有谁知道这可能是什么?谢谢.

解决方法

Obj-c / Swift桥有一个错误.

在等待解决方案时,您可以通过为自己创建临时桥来解决此问题:

添加以下类:

PhysWorldBridge.h

#import <Foundation/Foundation.h>
#import <SceneKit/SceneKit.h>//

@interface PhysWorldBridge : NSObject

- (void) physicsWorldSpeed:(SCNScene *) scene withSpeed:(float) speed;
- (void) physicsGravity:(SCNScene *) scene withGravity:(SCNVector3) gravity;

@end

PhysWorldBridge.m

#import "PhysWorldBridge.h"

@implementation PhysWorldBridge

- (id) init
{
    if (self = [super init])
    {        
    }
    return self;
}

- (void) physicsWorldSpeed:(SCNScene *) scene withSpeed:(float) speed
{
    scene.physicsWorld.speed = speed;
}

- (void) physicsGravity:(SCNScene *) scene withGravity:(SCNVector3) gravity
{
    scene.physicsWorld.gravity = gravity;
}

@end

当您添加第一个objective-c文件时,Xcode应该提示您创建一个XXX-Bridging-Header.h.让它创建这个文件.

将类的导入添加到’XXX-Bridging-header.h“:

//
//  Use this file to import your target's public headers that you would like to expose to Swift.
//

#import "PhysWorldBridge.h"

现在你可以使用这个(hacky)桥来设置Swift的属性

//scene.physicsWorld.speed = 2.0
// CAN'T USE ABOVE OR LINKER ERROR


let bridge = PhysWorldBridge();
bridge.physicsWorldSpeed(scene,withSpeed: 2.0);
//This call bridges properly

//So would the gravity one:
bridge.physicsGravity(scene,withGravity: SCNVector3Make(0,-90.81,0));

猜你在找的Xcode相关文章