0

我正在尝试在从 iPhone 发出的 twee 中嵌入一个链接。URL 以右括号结尾。该括号被删除并导致 t.co 链接失败。我试过编码,用href标记。似乎没有什么可以将右括号带入生成的 URL。看看我最后尝试了什么,因为字符太多而失败。为什么没有缩短?:

    if (tweetsEnabled && twitToSendTo != nil) {
        // Build the string
        NSString *mapURL = [NSString stringWithFormat:@"http://maps.google.com/maps?q=%@,%@+(%@)",newLogEvent.lattitude,newLogEvent.longitude,eventString];
        NSString *encodedURL = [mapURL encodeString:NSUTF8StringEncoding];
        NSString *tweetString = [NSString stringWithFormat:@"%@\n<a href>=\"%@\"></a>",note,encodedURL];
        NSLog(@"%@",tweetString);
        // Send it
        [self performSelectorOnMainThread:@selector(postToTwitterWithString:) withObject:tweetString waitUntilDone:NO];
    } 

在最简单的形式中,没有编码、没有标签和没有 +(%@),链接可以工作。它显示为 t.co 缩短链接,并按预期显示网页。但是我需要括号中的字符串来为标签提供文本,而且看起来应该很容易得到它。

这是 NSLog 的输出:

2012-08-14 09:57:43:551 app[2683:34071] -[logger insertLogEvent:withLocation:isArrival:] [Line 641] Arrival logged for Home
<a href>="http%3A%2F%2Fmaps.google.com%2Fmaps%3Fq%3D26.17071170827948%2C-80.16628238379971%2B%28Arrival%29"></a>
4

1 回答 1

0

这有效:

// Build the string
        NSString *mapURL = [NSString stringWithFormat:@"http://maps.google.com/maps?q=%@,%@+%%28%@%%29",newLogEvent.lattitude,newLogEvent.longitude,eventString];
        NSString *tweetString = [NSString stringWithFormat:@"%@\n%@",note,mapURL];

我现在不是对整个字符串进行编码,而是对括号进行编码。这篇方便的帖子,如何向 NSString 添加百分号,是我找到获取编码百分号的正确方法的地方。

于 2012-08-14T15:11:08.180 回答