Oluşturma ObjectiveC içinde NSDictionary nesnelerden sorgu parametreleri URL
URL işleme tüm nesneleri standart Kakao kütüphanelerde ortalıkta (NSURL, NSMutableURL, NSMutableURLRequest, vb), istek ALMAK bir program aracılığıyla oluşturmak için kolay bir yol bakan olmalıyım biliyorum.
Şu anda ben el ile ekleme "?" ve ardından ad değer çiftleri katıldı "&", ama benim ad ve değer çiftleri olmak gerekir el ile kodlanmış çok NSMutableURLRequest değil tamamen başarısız olduğunda çalışır bağlanmak için URL.
Bunun için önceden pişmiş bir API kullanabilmek için yapmam gereken bir şey gibi geliyor.... kutunun dışında bir şey bir NSURL için sorgu parametreleri bir NSDictionary eklemek var mı? Bu yaklaşmam gerekiyor. başka bir yolu var mı?
CEVAP
İOS8 ve OS X 10.10 tanıtıldı sorguları oluşturmak için kullanılabilir NSURLQueryItem
,. NSURLQueryItem: docs
NSURLQueryİtem bir nesne bir URL sorgu bölümünde bir madde için tek bir ad/değer çifti temsil eder. NSURLComponents bir nesnenin queryİtems özelliği ile sorgu öğeleri kullanın.
Bir tane oluşturmak için belirlenen başlatıcı queryItemWithName:value:
NSURLComponents
onları NSURL
Bir oluşturmak için ekleyin. Örneğin:
NSURLComponents *components = [NSURLComponents componentsWithString:@"http://stackoverflow.com"];
NSURLQueryItem *search = [NSURLQueryItem queryItemWithName:@"q" value:@"ios"];
NSURLQueryItem *count = [NSURLQueryItem queryItemWithName:@"count" value:@"10"];
components.queryItems = @[ search, count ];
NSURL *url = components.URL; // http://stackoverflow.com?q=ios&count=10
Soru işareti ve işareti otomatik olarak işlenir dikkat edin. Parametreler bir sözlük NSURL
Bir oluşturma Basit olarak
NSDictionary *queryDictionary = @{ @"q": @"ios", @"count": @"10" };
NSMutableArray *queryItems = [NSMutableArray array];
for (NSString *key in queryDictionary) {
[queryItems addObject:[NSURLQueryItem queryItemWithName:key value:queryDictionary[key]]];
}
components.queryItems = queryItems;
Ayrıca NSURLComponents
NSURLQueryItems
ile URL oluşturmak için nasıl blog post bir mektup yazdım.
Nasıl SQL Server bir sorgu içinde Haft...
bağlam parametreleri geçirmek için nas...
URL sorgu parametreleri ile HTTP POST ...
Github.com içinde klasör oluşturma rep...
Neden bir zaman Dilimi içinde Button v...