gpt4 book ai didi

iOS - 在不解析的情况下构建电子邮件 URL

转载 作者:行者123 更新时间:2023-11-29 11:01:41 28 4
gpt4 key购买 nike

我想使用一些类(NSURL 或类似的)构建一个电子邮件 URL 但是我不想解析字符串的开销。我希望能够指定方案(在本例中为 mailto)和地址(在本例中为 someone@somewhere.com。)

我试过这段代码:

NSString *address = @"someone@somewhere.com";
NSString *scheme = @"mailto";

NSURL *url = [[NSURL alloc] initWithScheme:scheme host:address path:@"/"];
NSLog(@"test2: %@", [url absoluteString]);

但它输出:

mailto://someone@somewhere.com/

这甚至不是有效的电子邮件 URL。

我有哪些选择?

附注请不要建议使用 NSDataDetector,因为它比通常的字符串解析更昂贵。

最佳答案

假设您只有电子邮件地址而没有其他随身元素,解决方案很简单:

- (NSURL *)mailtoURLWithEmailAddress:(NSString *)address;
{
address = [address stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL *result = [NSURL URLWithString:[@"mailto:" stringByAppendingString:address]];
return result;
}

如果有人可能指定 ASCII 字符之外的地址,或包含保留的 URL 字符之一,则添加百分比转义很重要。

要获得更强大的解决方案,请参阅我的 KSFileUtilities 中的 KSMailtoURLs存储库。它补充说:

  • 处理包含收件人姓名和地址的字符串
  • 电子邮件主题行等的编码

关于iOS - 在不解析的情况下构建电子邮件 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15629157/

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