NSMutableArray打印具有多个属性的对象数组

时间:2017-05-08 15:48:37

标签: objective-c arrays

我为继承了Character类的Friend和Foe对象定义了这个printDetails方法。

-(void) printDetails
{
NSLog (@"\n%@: \nStrength is %ld \nIntelligence is %ld \nSpell is %@\n\n", self.name, self.strength, self.intelligence, self.spell);
}

主要我打印我的数组“characters”

  NSLog(@"%@", characters);

但是我的输出看起来像一系列内存地址。

(
"<Friend: 0x100204aa0>",
"<Friend: 0x100600320>",
"<Friend: 0x100600170>",
"<Foe: 0x100500330>",
"<Foe: 0x100205b50>",
"<Foe: 0x100102270>"
)

2 个答案:

答案 0 :(得分:1)

您似乎从未在主电话中调用printDetails功能。您看到的结果是NSArray指向的指针的内存地址。

不是最优雅的解决方案,但为了测试您的功能,您可以简单地循环遍历元素并在每个元素上调用printDetails(授予您的函数是Character类的本地函数。

for (Character *character in characters) {
    [character printDetails];
}

这应该在控制台中输出你的功能结果。

答案 1 :(得分:0)

我使用以下代码。

int num = 1;
for (Character *theCharacter in characters)
{
    NSLog (@"%d : ", num++);
    [theCharacter printDetails];
}