首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AutoRelease干扰数据处理

AutoRelease干扰数据处理
EN

Stack Overflow用户
提问于 2012-01-04 04:02:41
回答 1查看 124关注 0票数 0

因此,我正从This Tutorial着手,尝试使用自建的应用程序接口在我的应用程序中构建一个XML阅读器。我正在尝试读取一个xml,并且一直收到这个错误:

代码语言:javascript
复制
*** -[CFString release]: message sent to deallocated instance 0x68675a0

我不会释放或释放任何东西,我会让AutoRelease来处理所有这些事情。下面是我对该方法的调用:

代码语言:javascript
复制
self.dtContact = [DTContactParser loadDTC];   

if (_dtContact != nil) {
    for (DTContact *dtc in _dtContact.contacts) {
        NSLog(@"%@", dtc.description);
}
}
NSLog(@"done");

当它发送NSLog(@"done");,然后抛出错误时,我得到了我的错误。

下面是DTContactParser的loadDTC

代码语言:javascript
复制
+ (DTCXMLResponse *)loadDTC {

NSString *filePath = [self dataFilePath:FALSE];
NSData *xmlData = [[NSMutableData alloc] initWithContentsOfFile:filePath];
NSError *error;
GDataXMLDocument *doc = [[GDataXMLDocument alloc] initWithData:xmlData 
                                                       options:0 error:&error];
if (doc == nil) { return nil; }

DTCXMLResponse *dtcxmlr = [[DTCXMLResponse alloc] init];
NSArray *dtcontacts = [doc.rootElement elementsForName:@"DetectiveContact"];
for (GDataXMLElement *dtcontact in dtcontacts) {

    // Let's fill these in!
    NSString *description;
    int dtcid;

    // Name
    NSArray *descriptions = [dtcontact elementsForName:@"description"];
    if (descriptions.count > 0) {
        GDataXMLElement *firstName = (GDataXMLElement *) [descriptions objectAtIndex:0];
        description = firstName.stringValue;
    } else continue;

    // Level
    NSArray *ids = [dtcontact elementsForName:@"idDetectiveContact"];
    if (ids.count > 0) {
        GDataXMLElement *firstID = (GDataXMLElement *) [ids objectAtIndex:0];
        dtcid = firstID.stringValue.intValue;
    } else continue;

    DTContact *dtcontact = [[DTContact alloc] initWithName:description dtId:dtcid];
    [dtcxmlr.contacts addObject:dtcontact];


return nil;

}}

下面是DTContact:

代码语言:javascript
复制
    #import "DTContact.h"

@implementation DTContact
@synthesize description = _description;
@synthesize dtId = _dtId;

- (id)initWithName:(NSString *)description dtId:(int)dtId{

    if ((self = [super init])) {
        self.description = description;
        self.dtId = dtId;
    }    
    return self;

}

@end

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-05 04:42:37

Using this answer to a separate question,我已经在我的GDATAXML库上禁用了ARC,它停止了导致错误的发生。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8717936

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档