программа завершается с невостребованным исключением типа NSException - PullRequest
0 голосов
/ 25 июня 2018

Я пытаюсь просмотреть XML-файл и отобразить его содержимое

    int main(int argc, const char * argv[])
    {
    NSString *xmlPath = [[NSBundle mainBundle] pathForResource:@"xml" ofType:@"xml"];
    NSString *xml = [NSString stringWithContentsOfFile:xmlPath encoding:NSUTF8StringEncoding error:nil];
    NSXMLDocument *xmlDocument = [[NSXMLDocument alloc] initWithXMLString:xml options:0 error:nil];
    NSMutableArray *array = [NSMutableArray array];

    for (NSXMLElement *node in [xmlDocument.rootElement nodesForXPath:@"//app" error:nil])
    {
        NSMutableDictionary *dict = [NSMutableDictionary dictionary];
        NSMutableArray *photos = [NSMutableArray array];

        for (NSXMLElement *subNode in node.children)
        {
            if ([subNode.name isEqualToString:@"address"])
                [photos addObject:subNode.stringValue];
            else
                [dict setObject:subNode.stringValue forKey:subNode.name];
        }

        [dict setObject:photos forKey:@"address"];
        [array addObject:dict];
    }

    NSLog(@"%@", array);
    return 0;

}

Но я получаю сообщение об ошибке в этой строке

NSXMLDocument *xmlDocument = [[NSXMLDocument alloc] initWithXMLString:xml options:0 error:nil];

Ошибка говорит libc ++ abi.dylib: завершается с необработанным исключением типа NSException (лдб)

пожалуйста, помогите

Ответы [ 2 ]

0 голосов
/ 25 июня 2018

Чтение с локального пути

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
 NSString *documentsDirectory = [paths objectAtIndex:0];
 NSString *appFile = [documentsDirectory stringByAppendingPathComponent:@"xml.xml"];

Затем используйте с локального пути

NSURL *xmlFile = [NSURL fileURLWithPath:appFile];
 NSXMLParser *addressParser = [[NSXMLParser alloc] initWithContentsOfURL:xmlFile];

ПРИМЕЧАНИЕ :NSXMLDocument является классом только для OS X

http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSXMLDocument_Class/Reference/Reference.html

Вы не можете использовать его в iOS.

В iOS вы можете использовать NSXMLParser .

0 голосов
/ 25 июня 2018

убедитесь, что xml NSString не ноль

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...