20150311追記:機能追加の項目を追記。
csny/finalfessjson · GitHub
当初イメージしていたものが完成した。
完成画像
まず、プルダウンでJSONを正常に取得して、表示できた。
ありえないホストを入れると、
更新時にアラートを表示するが、アプリ自体は落ちない。
シリーズの2をベースに、ほかの機能をコードで盛り込んだだけなので、手順は示さない。
機能追加
結果0件だった場合の通知機能と検索URLでよくある記号回避の機能(!なら%21とか)と空白による複数単語検索の機能を追加した。
この辺でデバッグと機能追加は終わりにします。いや、気になり出すと本当にどこまでも終わらないので。
// 検索文字置換 - (NSString *) urlescapeChar { // ASCIIコード以外が含まれるかチェック NSString *words, *words1; NSCharacterSet *stringCharacterSet = [NSCharacterSet characterSetWithCharactersInString:_searchFld.text]; NSCharacterSet *asciiWithoutSpaceCharacterSet = [NSCharacterSet characterSetWithRange:NSMakeRange(0x21, 0x5e)]; if ([asciiWithoutSpaceCharacterSet isSupersetOfSet:stringCharacterSet]) { // 英数字のみ words = _searchFld.text; } else { // 英数字以外の文字がある(空白の可能性もある) // URL用のエンコード words1 = (__bridge_transfer NSString *)CFURLCreateStringByAddingPercentEscapes( NULL, (__bridge CFStringRef)_searchFld.text, //元の文字列 NULL, CFSTR("!*'();:@&=+$,/?%#[]"), CFStringConvertNSStringEncodingToEncoding(NSUTF8StringEncoding)); // 空白を+に置換 words = [words1 stringByReplacingOccurrencesOfString:@"%20" withString:@"+"]; } return [NSString stringWithFormat:@"%@", words]; }