我已经在我的视图控制器中声明了NSMutableArray *categories.h文件,并为其声明了一个属性.

在我的NSXMLParser个代表的parser:foundCharacters:方法中.m文件,我有以下代码:

-(void)parser:(NSXMLParser *) parser foundCharacters:(NSString *)string  
{  
    if (elementFound)  
    {  
        element = string;  
        [self.categories addObject:element];  
    }  
}

但当我在调试模式下进入[self.categories addObject:element]行后,将鼠标悬停在[self.categories addObject:element]行上时,XCode告诉我大小是0x0,0个对象.我的XML文件中有3个元素,所以数组中应该有3个项目.

我错过了一些非常明显的东西,我不知道是什么.

推荐答案

"0x0"部分是一个内存地址.特别是"nil",这意味着您的可变数组在被调用时不存在.try 在-init方法中创建它:

categories = [[NSMutableArray alloc] init];

别忘了在你的-dealloc中发布它.

Objective-c相关问答推荐

反编译ARM64和理解分支目标边界

Objective C 布尔数组

pathForResource 返回 null

将 Objective-C 指针类型NSString *转换为 C 指针类型CFStringRef(又名const struct __CFString *)需要桥接转换

将 NSNumber 转换为 NSDecimalNumber

ARC的正确桥接?

声明变量id和NSObject *有什么区别?

在Objective-C中从类名的NSString创建对象

Objective-C:如何使用 BOOL 类型的参数调用 performSelector?

iOS NSLayoutConstraint 使用 constraintWithItem 固定宽度

iOS 7 - 键盘动画

alloc 和 allocWithZone: 有什么区别?

反转 NSString 文本

代码问题:格式字符串不是字符串文字

两个 NSDate 对象之间的区别 - 结果也是一个 NSDate

UITextField:键盘出现 timeshift 动视图

如何本地化 iOS 故事板

在 iOS 7 上运行应用程序时显示黑条(4 英寸视网膜显示屏)

围绕其中心旋转 UIView 保持其大小

CALayer:仅在一侧添加边框