Вам нужно использовать анализатор JSON. вот отредактированный код
+ (NSDictionary *)downloadJSON
{
NSDictionary *json_string;
NSString *dataURL = [NSString stringWithFormat:@"%@", JSON_CATEGORY_DATA_URL_STRING];
NSLog(@"%@",dataURL);
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:dataURL]];
NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
json_string = [[[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding]autorelease];
//JSONValue is a function that will return the appropriate object like dictionary or array depending on your json string.
NSDictionary *json_dict = [json_string JSONValue];
NSLog(@"json_dict\n%@",json_dict);
NSLog(@"json_string\n%@",json_string);
return json_dict;
}
это должен быть код для получения NSDictionary. но ваша строка json является массивом, поэтому вместо этого используйте.
+ (NSArray *)downloadJSON
{
NSDictionary *json_string;
NSString *dataURL = [NSString stringWithFormat:@"%@", JSON_CATEGORY_DATA_URL_STRING];
NSLog(@"%@",dataURL);
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:dataURL]];
NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
json_string = [[[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding]autorelease];
NSArray *json_dict = [json_string JSONValue];
NSLog(@"json_dict\n%@",json_dict);
NSLog(@"json_string\n%@",json_string);
return json_dict;
}
Редактировать: вам нужно использовать JSON.framework для вызова метода JSONValue.
также вам нужно вернуть json_dict
вместо json_string
, поскольку json_string
имеет тип NSString
, а не NSDictionary
или NSArray
.
и не выпускайте его автоматически, так как это ваша переменная класса
Я предположил, что исключение CGFontGetGlyphsForUnichars
было оплошностью, а не преднамеренным шагом, однако я не
ставя на это ферму. Поэтому вместо этого я использую
[NSString drawAtPoint: withFont:];
(в UIStringDrawing.h)
и
[NSString sizeWithFont];
Это также дает преимущество выполнения достойной замены
для символов, отсутствующих в вашем шрифте, то, чего не может
CGContextShowGlyphs
.
Я сделал довольно подходящую замену частной функции, об этом читайте здесь: http://gotits.codemelody.com/2009/07/a-replacement-for-cgfontgetglyphsforunichars/