简体   繁体   English

XMLParsing-将字符串转换为NSNumber

[英]XMLParsing - convert string to NSNumber

Can someone please tell me what I need to to do resolve this 有人可以告诉我解决该问题需要做什么吗

  1. I have an object UserPrefs *userpref 我有一个对象UserPrefs * userpref
  2. There is a variable called userpref.userid, it is an NSNumber 有一个名为userpref.userid的变量,它是一个NSNumber
  3. I am parsing XML, everything here works good until I go to assign my "myxmluseridnumber" element to the userpref.userid 我正在解析XML,在这里一切正常,直到我将“ myxmluseridnumber”元素分配给userpref.userid

This is the error message. 这是错误消息。

Incompatible pointer types passing 'NSMutableString *_strong' to parameter of type 'NSNumber 不兼容的指针类型将“ NSMutableString * _strong”传递给类型为“ NSNumber”的参数

    - (void) parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict {

        if ([elementName isEqualToString:@"User"]) {
            inItemElement = YES;
        }

        if (inItemElement && [elementName isEqualToString:@"myxmluseridnumber"]) {
            capturedCharacters = [[NSMutableString alloc] initWithCapacity:100];
        }
    }

    - (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
       if(capturedCharacters != nil) {
           [capturedCharacters appendString:string];
       }
    }

    - (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {

        if (inItemElement && [elementName isEqualToString:@"myxmluseridnumber"]) {
            NSLog(@"%@ - myxmlnumber", capturedCharacters);
            //This is what is producing my error
            userpref.userid = capturedCharacters;
            capturedCharacters = nil;
        }

        if ([elementName isEqualToString:@"User"]) {
            inItemElement = NO;
        }

    }

Thanks 谢谢

Since userid is an NSNumber , you should create an NSNumber from the string capturedCharacters 由于userid是一个NSNumber ,因此您应该从capturedCharacters的字符串中创建一个NSNumber

userpref.userid = [NSNumber numberWithInt:[capturedCharacters intValue]]; userpref.userid = [NSNumber numberWithInt:[capturedCharacters intValue]];

Replace your error-producing line with: 将产生错误的行替换为:

userpref.userid = [capturedCharacters intValue];

(assume your capturedCharacters is s NSString ) (假设你的capturedCharacters是S NSString

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM