gpt4 book ai didi

objective-c - 不带 "file://"的拖放 NSURL

转载 作者:搜寻专家 更新时间:2023-10-30 19:50:33 25 4
gpt4 key购买 nike

我正在实现我的拖放方法。我需要当用户在我的应用程序窗口上拖动某些东西时我可以获得该文件 URL。 NSURL需要转换为char。没关系。但是如何从 url 中删除 file:// 呢?我当前的代码:

pboard = [sender draggingPasteboard];
NSString *url = [[NSURL URLFromPasteboard:pboard] absoluteString];
input_imageN = strdup([url UTF8String]);

没问题,但它给出的 url 带有 file:// 前缀。我尝试使用

NSURL *fileUrl = [[NSURL URLFromPasteboard:pboard] isFileURL];
NSString *url = [fileUrl absoluteString];
NSLog(@"url: %@", [NSURL URLFromPasteboard:pboard]);
input_imageN = strdup([url UTF8String]);

但是上面写着

Cannot initialize a variable of type 'NSURL *' with an rvalue of type 'BOOL' (aka 'signed char')

NSURL *fileUrl = [[NSURL URLFromPasteboard:pboard] isFileURL];

最佳答案

要以文件系统的适当表示形式将文件 URL 转换为 C 字符串路径,您需要:

NSURL *fileURL = [NSURL URLFromPasteboard: pboard];
NSString *filePath = [fileURL path];
char *filesystemRepresentation = [filePath filesystemRepresentation];

这避免了假设剥离 scheme 只剩下路径,或者文件系统肯定乐于接受 UTF8 编码的路径。

关于objective-c - 不带 "file://"的拖放 NSURL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11558569/

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