gpt4 book ai didi

objective-c - OSX应用程序,获取用户使用NSOpenPanel选择的文件数据

转载 作者:行者123 更新时间:2023-12-03 16:53:47 29 4
gpt4 key购买 nike

我是开发 OSX 应用程序的新手。我通常开发 iOS 应用程序,所以很多概念都沿用下来。但是,我似乎不太明白为什么我无法检索系统上文件的数据。

为了读取用户系统上的文件,是否需要首先完成一些操作?

这是我所拥有的:

- (IBAction)btnBrowse:(id)sender {
NSOpenPanel *panel = [NSOpenPanel openPanel];

[panel beginWithCompletionHandler:^(NSInteger result){

if (result == NSFileHandlingPanelOKButton) {
//Get the file url user selected
NSURL *file = [[panel URLs] objectAtIndex:0];

//Get the file data
NSError *error;
NSString *fileData = [NSString stringWithContentsOfFile:[NSString stringWithFormat:@"%@", file] encoding:NSUTF8StringEncoding error:&error];

//This returns null
NSLog(@"%@", fileData);

//This says that the file does not exist
NSLog(@"Error: %@", error.localizedDescription);
}
}];
}

最佳答案

NSOpenPanel返回NSURL对象,最简单的解决方案是使用NSURL相关API

NSString *fileData = [NSString stringWithContentsOfURL:file encoding:NSUTF8StringEncoding error:&error];

如果您不知道文本编码,可以使用此API,如果读取成功,encoding将包含所使用的编码。

NSStringEncoding encoding;    
NSString *fileData = [NSString stringWithContentsOfURL:file usedEncoding:&encoding error:&error];

关于objective-c - OSX应用程序,获取用户使用NSOpenPanel选择的文件数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35873710/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com