Che*_*ees 5 xcode scenekit ios8
我一直在搞乱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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
XXX-Bridging-Header.h当您添加第一个objective-c文件时,Xcode应该提示您创建一个.让它创建这个文件.
将类的导入添加到'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"
Run Code Online (Sandbox Code Playgroud)
现在你可以使用这个(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));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
841 次 |
| 最近记录: |