使用MOAI使用Sandboxed Mac应用程序更正文档路径

时间:2013-12-19 17:34:18

标签: objective-c macos lua moai

我们有一个Mac桌面Moai应用程序,我们正在加载SFML上下文。应用程序本身已正确沙箱,因为我们的主机在〜/ Library / Containers 中返回路径:

NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

但是,当我们打印出MoaiEnvironment.documentDirectory时,它仍然会返回路径〜/ Documents。看看Moai lib,它看起来像是用完全相同的代码设置路径:

environment.SetValue ( MOAI_ENV_documentDirectory,  [[ NSSearchPathForDirectoriesInDomains ( NSDocumentDirectory, NSUserDomainMask, YES ) objectAtIndex:0 ] UTF8String ]);

我们如何确保设置Moai二进制文件以返回沙盒路径?

1 个答案:

答案 0 :(得分:1)

我最终创建了一个类似于moaiext-ios的简单AKU扩展,moaiext-osx:

// aku/AKU-macosx.h

#ifndef AKU_MACOSX_H
#define AKU_MACOSX_H

#import <Foundation/Foundation.h>

void AKUMacOSXInit ();

#endif

// aku/AKU-macosx.mm

#import <aku/AKU-macosx.h>

#include <moaicore/moaicore.h>

void AKUMacOSXInit () {

    MOAIEnvironment& environment = MOAIEnvironment::Get ();

    environment.SetValue ( MOAI_ENV_cacheDirectory, [ [ NSSearchPathForDirectoriesInDomains ( NSCachesDirectory, NSUserDomainMask, YES ) objectAtIndex:0 ] UTF8String ]);
    environment.SetValue ( MOAI_ENV_documentDirectory, [ [ NSSearchPathForDirectoriesInDomains ( NSDocumentDirectory, NSUserDomainMask, YES ) objectAtIndex:0 ] UTF8String ]);

}

我们现在只需在主机中导入此标头,然后拨打AKUMacOSXInit()