Xcode SCNP物理警告错误

Xcode SCNP物理警告错误,xcode,ios8,scenekit,Xcode,Ios8,Scenekit,我一直在和斯威夫特鬼混,试图让物理世界运转起来 这就是我得到的错误 “架构i386的未定义符号: “_OBJC_CLASS_u$_SCNPhysicsWorld”,引用自: __TFC3SK218GameViewController.o中的TFC3SK218GameViewController 11ViewDidLoadFS0_FT_T_ ld:未找到架构i386的符号 叮当声:错误:链接器命令失败,退出代码为1(使用-v查看调用) " 我假设它与链接或导入一个我不知道的库有关,但我已经添加了我

我一直在和斯威夫特鬼混,试图让物理世界运转起来

这就是我得到的错误 “架构i386的未定义符号: “_OBJC_CLASS_u$_SCNPhysicsWorld”,引用自: __TFC3SK218GameViewController.o中的TFC3SK218GameViewController 11ViewDidLoadFS0_FT_T_ ld:未找到架构i386的符号 叮当声:错误:链接器命令失败,退出代码为1(使用-v查看调用) "


我假设它与链接或导入一个我不知道的库有关,但我已经添加了我认为可以修复它的所有内容(在游戏工具包的其他帖子中找到)有人知道这可能是什么吗?谢谢。

Obj-c/Swift桥接器有一个bug

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

添加以下类:

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
添加第一个objective-c文件时,Xcode应提示您创建一个
XXX桥接头.h
。让它创建这个文件

将类的导入添加到“XXX桥接头.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));

你在OS X 10.9上运行Xcode 6 beta吗?物理是10.10场景工具包中的一个新功能。啊…是的。我在osx 10.9上运行Xcode beta6,但我在运行ios 8模拟器。我不认为操作系统会导致这个问题,因为该软件是针对ios的。我也有这个错误-物理正在运行,但你似乎无法访问物理世界d属性?如果您使用objective-c,这是可以访问的,尽管看起来很奇怪。是的,我一直在尝试学习一些swift就是一切。我认为最好使用静态类处理所有不一致的问题,在将来修复错误时,用swift代码替换静态行。
//
//  Use this file to import your target's public headers that you would like to expose to Swift.
//

#import "PhysWorldBridge.h"
//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));