DetailViewController.m
-(IBAction)buttonAction:(id)sender {
NSString *group=self.textFieldbegin.text;
NSMutableString *harry=[NSMutableString stringWithString:@"http://www.bsuir.by/psched/rest/"];
[harry appendString:group];
NSString *string = harry;
NSURL *url = [NSURL URLWithString:string];
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
MyParser *parser = [[MyParser alloc] initWithURL:url
];
[[NSUserDefaults standardUserDefaults] setObject:parser.items forKey:@"DKey"];
});
[[NSNotificationCenter defaultCenter] postNotificationName:@"MyNotification"
object:self];
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
// записываем все сделанные изменения в хранилище
[[NSUserDefaults standardUserDefaults] synchronize];
}
ParserDelegate.m
@implementation MyParser
- (id)initWithURL:(NSURL*)url
{
if (self = [super init]) {
NSXMLParser *parser = [[NSXMLParser alloc] initWithContentsOfURL:url];
parser.delegate = self;
_items = [NSMutableArray new];
[parser parse];
}
return self;
}
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
if ([elementName isEqualToString:@"ROW"]) {
if (attributeDict) {
[_items addObject:attributeDict];
}
}
}
@end
ViewController.m - основной
в методе ViewDidLoad - [[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector (maxkitten)
name:@"MyNotification"
object:nil];
maxkitten - функция сортировки данных из userdefault, с вложенным в нее блоком ( единственное, что, как вариант, может портить картину - очень-очень много кода в блоке ( около 7 тысяч строк), н она симуляторе все отлично справляется)