2012-10-22 31 views

Trả lời

19

Bạn cần phải tách biệt việc xây dựng hai chuỗi gọi

NSString* urlString = [[NSString stringWithFormat:@"http://server.com/ios/add.php?user=iPhone+App&message=%@", messageBox.text] stringByAddingPercentEscapesUsingEncoding : NSUTF8StringEncoding]; 
NSURL *add = [NSURL URLWithString:urlString]; 
+0

Đã hoạt động hoàn hảo! Cảm ơn nhiều! –

+7

Câu trả lời này thực sự không phải là câu trả lời hay nhất. Bạn chỉ nên thoát khỏi các giá trị tham số riêng lẻ, chứ không phải toàn bộ URL. Bạn muốn: 'NSString * urlString = [NSString stringWithFormat: @" http://server.com/ios/add.php?user=iPhone+App&message=%@ ", [messageBox.text stringByAddingPercentEscapesUsingEncoding: NSUFT8StringEncoding]];' – rmaddy

+1

"NSUFT8StringEncoding" phải là "NSUTF8StringEncoding". Các "T" và "F" được transposed. – trevorgrayson

1

Thử:

NSString* urlString = [[NSString stringWithFormat:@"http://server.com/ios/add.php?user=iPhone+App&message=%@", messageBox.text] stringByAddingPercentEscapesUsingEncoding : NSUFT8StringEncoding]; 
0

Tách phương pháp NSString để xem rõ ràng:

NSString* urlString = [[NSString stringWithFormat:@"http://server.com/ios/add.php?user=iPhone+App&message=%@", messageBox.text] stringByAddingPercentEscapesUsingEncoding : NSUFT8StringEncoding]; 
7

Cách thích hợp không phải là thoát toàn bộ URL. Bạn chỉ nên thoát khỏi các giá trị tham số riêng lẻ.

NSString* urlString = [NSString stringWithFormat:@"http://server.com/ios/add.php?user=iPhone+App&message=%@", [messageBox.text stringByAddingPercentEscapesUsingEncoding : NSUFT8StringEncoding]]; 

Hơn thế nữa, để có thể đọc và sửa lỗi dễ dàng hơn, làm được điều này:

NSString *escapedText = [messageBox.text stringByAddingPercentEscapesUsingEncoding:NSUFT8StringEncoding]; 
NSString* urlString = [NSString stringWithFormat:@"http://server.com/ios/add.php?user=iPhone+App&message=%@", escapedText]; 
+0

Tại sao điều này "phù hợp" hơn? –

+0

@NigamShah Vì trong trường hợp này, bạn chỉ cần mã hóa các giá trị tham số truy vấn chứ không phải toàn bộ URL. – rmaddy

-1

NSURL sẽ mã hóa tự động url chuỗi khi bạn gọi NSURL urlWithString mã này là không cần thiết.

Các vấn đề liên quan