1

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

NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

但是,当我们打印出 MoaiEnvironment.documentDirectory 时,它仍然返回路径 ~/Documents。查看 Moai 库,看起来它正在使用完全相同的代码设置路径:

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

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

4

1 回答 1

1

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

// 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().

于 2013-12-20T17:26:10.450 回答