что-то не так в моей программе с помощью GData xmlsupport - PullRequest
5 голосов
/ 28 мая 2010

Я новичок здесь, я не знаю, как это использовать ... вот мой код:

NSString *strParse=@"url";
NSURL *urlParse=[NSURL URLWithString:strParse];
NSString *content=[[NSString alloc] initWithContentsOfURL:urlParse];
NSError *error;
GDataXMLDocument *document=[[GDataXMLDocument alloc] initWithXMLString:content options:0 error:&error];

---------------------- XML ​​-----

<?xml version="1.0" encoding="UTF-8"?>
<root>
<head>
<version>20100514103110</version>
</head>
<channels>
<channel>
<id>1</id>
<name>
<![CDATA[]]>
</name>
<uuid>
<![CDATA[21001]]>
</uuid>
<site_url>
<![CDATA[http://]]>
</site_url>
<pics>
<url>
<![CDATA[/21001/cms_images/channel/2010-01/21/channel_51224251664216081527429.png]]>
</url>
<url>
<![CDATA[/21001/cms_images/channel/2010-01/21/channel_82864703356323359638124.png]]>
</url>
<url>
<![CDATA[/21001/cms_images/channel/2008-07/04/channel_67535050807177704592393.swf]]>
</url>
<url>
<![CDATA[]]>
</url>
<url>
<![CDATA[]]>
</url>
</pics>
<linkurls>
<url>
<![CDATA[]]>
</url>
<url>
<![CDATA[]]>
</url>
<url>
<![CDATA[]]>
</url>
</linkurls>
<description>
<![CDATA[]]>
</description>
<provider>
<![CDATA[]]>
</provider>
<attr>3</attr>
<props>
<prop1>
<![CDATA[21001/movie_shell.swf]]>
</prop1>
<prop2>
<![CDATA[]]>
</prop2>
<prop3>
<![CDATA[]]>
</prop3>
<prop4>
<![CDATA[]]>
</prop4>
<prop5>
<![CDATA[]]>
</prop5>
</props>
</channel>
</channels>
</root>

---------- ошибка ниже ---------------

 Ld build/Debug-iphonesimulator/newParser.app/newParser normal i386
    cd /Users/apple/Desktop/newParser
    setenv MACOSX_DEPLOYMENT_TARGET 10.5
    setenv PATH "/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
    /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.2 -arch i386 -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.1.sdk -L/Users/apple/Desktop/newParser/build/Debug-iphonesimulator -F/Users/apple/Desktop/newParser/build/Debug-iphonesimulator -filelist /Users/apple/Desktop/newParser/build/newParser.build/Debug-iphonesimulator/newParser.build/Objects-normal/i386/newParser.LinkFileList -mmacosx-version-min=10.5 -lxml2 -framework Foundation -framework UIKit -framework CoreGraphics -o /Users/apple/Desktop/newParser/build/Debug-iphonesimulator/newParser.app/newParser

    Undefined symbols:
      "_kGDataXMLXPathDefaultNamespacePrefix", referenced from:
          _kGDataXMLXPathDefaultNamespacePrefix$non_lazy_ptr in GDataXMLNode.o
         (maybe you meant: _kGDataXMLXPathDefaultNamespacePrefix$non_lazy_ptr)
    ld: symbol(s) not found
    collect2: ld returned 1 exit status

Ответы [ 2 ]

11 голосов
/ 24 июня 2010

Удалите #import "GDataXMLNode.h" из предварительно скомпилированного заголовка (и из включенных в него файлов .h) и добавляйте его только в файлы реализации, где это необходимо.

8 голосов
/ 13 мая 2011

в качестве альтернативы, вы можете просто определить символ. изменить:

_EXTERN const char* kGDataXMLXPathDefaultNamespacePrefix _INITIALIZE_AS("_def_ns");

что-то вроде:

#define kGDataXMLXPathDefaultNamespacePrefix ("_def_ns");

Они используют небольшую хитрость препроцессора в исходной инструкции, но, насколько я вижу, это не вызывает проблем и позволит вам импортировать GDataXMLNode.h в ваш .pch, что очень удобно, если вы ' часто использую его - как и я!

Конечно, убедитесь, что вы тестируете, это работает нормально и для вас

...