У меня есть следующий код, который работает. Он успешно отображает Myname в NSLog ...Objective C - Как вернуть локальную переменную в этот код?
NSURL *apiString = [NSURL URLWithString:@"http://testapi.com/url"];
[XMLConverter convertXMLURL:apiString completion:^(BOOL success, NSDictionary *dictionary, NSError *error)
{
if (success)
{
NSString *myName = dictionary[@"profile"][@"real_name"];
NSLog(@"%@ is my name", myName);
}
}];
У меня есть следующий код для метода convertXMLURL, который находится в XMLConverter.m, который я импортируемый. Это хорошая работа по преобразованию моего XML в NSDictionary. Это то, что я хочу ...
+ (void)convertXMLURL:(NSURL *)url completion:(OutputBlock)completion
{
///Wrapper for -initWithContentsOfURL: method of NSXMLParser
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
NSXMLParser *parser = [[NSXMLParser alloc] initWithContentsOfURL:url];
[[XMLConverter new] parser:parser completion:completion];
});
}
Проблема у меня есть * словарь - это локальная переменная. Мне нужно использовать его в другом месте в коде. Как я могу вернуть его?
Что касается ответа ниже вы можете объявить словарь собственность либо в .h или .m файл, в зависимости от требований к видимости. – carlodurso
благодарит Франческо! –
Добро пожаловать! :) Если это помогло вам, не могли бы вы принять его? – fpg1503