Прежде всего, я хочу начать с того, что я вроде новичок в Objective C и мире iPhone, и мне это очень нравится, это действительно интересно.
Япришедший из мира PHP и пытающийся принять некоторые из самых разных концепций Objective C, таких как необходимость выпускать свои собственные объекты, чтобы избежать утечек памяти.
Но у меня возникает небольшая проблема, когда я выпускаю большечем 1 переменная в конце моей функции, приложение по какой-то причине вылетает с ошибкой EXC_BAD_ACCESS
.Я уверен, что это что-то маленькое и глупое, но я вроде не знаю.
Буду признателен за ваше руководство, вот мой код:
+ (id) getJsonFromURL: (NSURL *)url withQueryString: (NSString *)queryString withMethod: (NSString *)HTTPMethod error: (NSError **)outError{
// Initialize request
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url];
NSData *requestData = [NSData dataWithBytes:[queryString UTF8String] length: [queryString length]];
// Set request data and method
[request setHTTPMethod:HTTPMethod];
[request setHTTPBody:requestData];
// Perform request
NSURLResponse *uResp = nil;
NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:&uResp error:nil];
// Make sure HTTP Request was successful (HTTP Code 200)
NSInteger httpStatus = [((NSHTTPURLResponse *)uResp) statusCode];
if(httpStatus != 200){
NSMutableDictionary *userInfo = [NSMutableDictionary dictionary];
[userInfo setValue:[NSString stringWithFormat:@"The requested URL could not be read (HTTP Code: %d)", httpStatus] forKey: NSLocalizedDescriptionKey];
}[NSException raise:@"MerchGuru.BadURL" format:@"The URL couldn't be read (HTTP Code: %d)", httpStatus];
// Decode JSON Output
NSError *jsonError = nil;
id respData = [[CJSONDeserializer deserializer] deserialize:returnData error:&jsonError];
if(jsonError != nil){
if(outError != nil){
NSMutableDictionary *userInfo = [NSMutableDictionary dictionary];
[userInfo setValue:@"The JSON Output provided isn't valid JSON!" forKey:NSLocalizedDescriptionKey];
*outError = [NSError errorWithDomain:@"com.freak4pc.merchguru" code:6001 userInfo: userInfo];
[userInfo release];
NSLog(@"%@", [*outError localizedDescription]);
}
[respData release];
[jsonError release];
[returnData release];
[uResp release];
[requestData release];
[request release];
return nil;
}else{
[respData release];
[jsonError release];
[returnData release];
[uResp release];
[requestData release];
[request release];
return respData;
}
}
Спасибо :) Shai.