我做了一個小工具,需要訪問用戶層的Application Support目錄,所以我創建了一個命令列專案,使用URLsForDirectory獲取路徑,一切正常。但是當我用 gui 創建一個 cocoa 專案時,它回傳的路徑是在 Containers 目錄下,這似乎不存在。造成這種差異的原因是什么?在 cocoa 專案中如何獲取 ~/Library/Application Support 目錄?
這是代碼:
#import "ViewController.h"
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
NSArray* pathes = [[NSFileManager defaultManager] URLsForDirectory:NSApplicationSupportDirectory inDomains:NSUserDomainMask
];
NSString* applicationSupportPath = [pathes firstObject];
NSLog(@"Application Support:%@\n", applicationSupportPath);
}
- (void)setRepresentedObject:(id)representedObject {
[super setRepresentedObject:representedObject];
// Update the view, if already loaded.
}
@end
輸出是:
2022-10-03 22:01:23.230600 0800 TestApplicationSupportPath[49579:213899] Application Support:file:///Users/bodong/Library/Containers/com.bodong.TestApplicationSupportPath/Data/Library/Application Support/
安慰 :
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
// insert code here...
NSLog(@"Hello, World!");
}
NSArray* pathes = [[NSFileManager defaultManager] URLsForDirectory:NSApplicationSupportDirectory inDomains:NSUserDomainMask
];
NSString* applicationSupportPath = [pathes firstObject];
NSLog(@"Application Support:%@\n", applicationSupportPath);
return 0;
}
輸出是:
2022-10-03 22:02:09.341780 0800 TestASPCmd[49791:215344] Application Support:file:///Users/bodong/Library/Application Support/
Program ended with exit code: 0
uj5u.com熱心網友回復:
找到了解決辦法,就在專案屬性中,切換到Signing&Capabilities,洗掉Sanbox組。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/514420.html
標籤:目标-c代码苹果系统沙盒
