3
由於某些原因,我評估選擇是通過文件在我的iOS應用程序和我的C++ - Lib(由iOS-App使用)之間交換數據。數據交換Objective-C與基於C++的文件
C++(正常工作在本地機器上):
void LibFacadeTest::testFileAccess()
{
this->log->info("start testFileAccess");
char filename[] = "./test.txt";
std::string result;
LibFacade *e = new LibFacade();
try
{
result = e->testFileAccess(filename);
}
catch(...)
{
this->log->error("error");
}
this->log->info("Result:" + result);
delete(e);
}
重新編譯ARM和設備上運行,我可以看到,文件名參數正確傳遞(通過日誌),但什麼都不會返回。
下面是Objective-C代碼:
LibFacade *tlb = new LibFacade();
char *testName = "blub.txt";
std::string str = tlb->testFileAccess(testName);
// Check, if file exists
NSFileManager *filemgr;
filemgr = [NSFileManager defaultManager];
if ([filemgr fileExistsAtPath: @"blub.txt" ] == YES)
NSLog (@"File exists");
else
NSLog (@"File not found");
NSError *error = nil;
NSString *myString = [NSString stringWithContentsOfFile:@"blub.txt" encoding:NSUTF8StringEncoding error:&error];
UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:myString
delegate:nil cancelButtonTitle:nil destructiveButtonTitle:myString otherButtonTitles:nil];
[actionSheet showInView:self.view];
有點快速和骯髒的,但我可以看到的是,有沒有文件已在設備上創建雖然lib中都可以使用。
我的問題: 從包含的C++ lib中訪問設備文件系統是否有任何限制?我必須使用任何特殊的目錄進行文件交換嗎?