Objective c 调用时子类中未计算的数组值
仅仅是在BNR iOS书和第2章的挑战中做一些黄金挑战就让我感到困惑 这是我的BNRContainer.m类文件,它是BNRItem的一个子类。挑战的目标是覆盖对象的描述并打印出它的一些属性。计算不正确的是BNR容器的Objective c 调用时子类中未计算的数组值,objective-c,Objective C,仅仅是在BNR iOS书和第2章的挑战中做一些黄金挑战就让我感到困惑 这是我的BNRContainer.m类文件,它是BNRItem的一个子类。挑战的目标是覆盖对象的描述并打印出它的一些属性。计算不正确的是BNR容器的containerValue #import "BNRContainer.h" ... -(int)containerValue{ int total = 0; for (BNRItem *item in self.subItems) {
containerValue
#import "BNRContainer.h"
...
-(int)containerValue{
int total = 0;
for (BNRItem *item in self.subItems) {
total += item.valueInDollars;
}
return total;
}
-(NSString *)description{
NSString *descriptionstr = [NSString stringWithFormat:@"I'm a container named %@! My total value is %d and my items are %@",self.itemName, containerValue, self.subItems];
return descriptionstr;
}
这是主要的问题。m:
#import <Foundation/Foundation.h>
#import "BNRItem.h"
#import "BNRContainer.h"
int main(int argc, const char * argv[])
{
@autoreleasepool {
NSMutableArray *items = [[NSMutableArray alloc] init];
BNRItem *item = [[BNRItem alloc] initWithItemName:@"Red Sofa" valueInDollars:100 serialNumber:@"A1B2C"];
BNRItem *itemWithName = [[BNRItem alloc] initWithItemName:@"Blue Sofa" valueInDollars:45 serialNumber:NULL];
BNRItem *itemWithNoName = [[BNRItem alloc]init];
[items addObject:item];
[items addObject:itemWithName];
[items addObject:itemWithNoName];
BNRContainer *container = [[BNRContainer alloc]init];
container.itemName = @"TheMainContainer";
container.subItems = items;
NSLog(@"%@",container);
items = nil;
}
return 0;
}
好了,就在这里。。。很好地排除了
self
NSString *descriptionstr = [NSString
stringWithFormat:@"I'm a container named %@! My total value is %d and my items are %@",
self.itemName,
self.containerValue, //self was missing
self.subItems];
通过像您那样格式化代码,可以很明显地看到。containerValue似乎是一个读/写属性。
NSString *descriptionstr = [NSString
stringWithFormat:@"I'm a container named %@! My total value is %d and my items are %@",
self.itemName,
self.containerValue, //self was missing
self.subItems];