2010-07-28 66 views
0

我发布这个主题,因为我的iPhone应用程序自3天以来有问题。我希望有人能帮助我,因为我疯了。访问一个对象的NSMutableArray

这是事情:我用XML解析器在我的应用程序的委托中填充一个对象userXMLData。此对象包含许多NSString和一个包含对象类型为Album的NSMutableArrays。

我的问题是:我可以用一个内部函数显示userXMLData的所有数据,但是当我试图从我的viewController中的数组中获取数据时,它不起作用。我的意思是,它崩溃。这很奇怪,因为我可以访问到appDelegate.userXMLData.NSString但不是我的appDelegate.userXMLData.NSMutableArray的

这里是我的代码:

// Initializaiton in the delegate 
userXMLData = [[UserXMLData alloc] init]; 
userXMLData.myArray = [[NSMutableArray alloc] init]; 

UserXMLData.h

@interface UserXMLData : NSObject { 
    // User Data 
    NSString *userId; 
    // Content 
    NSMutableArray *myArray; 
} 

@property(nonatomic, retain) NSString *myString; 
@property(nonatomic, copy) NSMutableArray *myArray; 

@end 

// Album.h

@interface Album : NSObject { 
    NSString *albumId; 
    NSMutableArray *content; 
} 

@property(nonatomic, retain) NSString *albumId; 
@property(nonatomic, retain) NSMutableArray *content; 

@end 

正如我所说,我真的不知道为什么它崩溃。我卡住了,如果不修复它,我就无法继续我的应用程序。

回答

0

启用僵尸按照这里的说明:

http://loufranco.com/blog/files/debugging-memory-iphone.html

这将导致您的应用程序不会释放任何对象,而是使他们抱怨到控制台,如果消息是发布后发给他们。

碰撞最常见的原因是释放太频繁(或保留时间太少)。

此外,运行构建和分析有时可以指出这些。

+0

是的,你是对的。我发现了我的错误,就在我想要打印数据的时候,我发布了一个对象,它与我的真实对象是同一个指针。 – iLionel 2010-07-29 13:48:16

0

如果您在代码中显示您尝试访问阵列的代码以及在崩溃时收到的错误,将能够更好地回答问题,但我会冒险猜测您没有@synthesize myArray你的实现(.M)文件