我为继承了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>"
)
答案 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];
}