从类获取数据的问题
我想这是非常基本的,但我正在努力从类中获取数据(在这种情况下是一个简单的字符串)。从类获取数据的问题
我的课很简单;它看起来像这样:
然后我有@property和@synthesise调用。我在我的viewController中导入这个(#import myBook.h),在那里我想把图书添加到我的图书馆。所以我有这个设置的变量来控制我的图书馆:
NSMutableArray *myLibrary;
NSUInteger currentBookNumber;
myBook *currentBook;
和:
@property (nonatomic, retain) NSMutableArray *myLibrary;
@property (nonatomic, assign) NSUInteger currentBookNumber;
@property (nonatomic, readonly) NoteBook *currentBook;
然后我建立了我的图书馆,像这样:
-(void) setupLibrary {
myBook *newBook = [[myBook alloc] init];
newBook.titleName = @"Test";
newBook.titleColour = @"orange";
[myLibrary addObject:newBook];
[myLibrary addObject:newBook];
[myLibrary addObject:newBook];
currentBookNumber = 0;
}
在为了从当前书中获取数据我有以下方法:
-(NmyBook *) currentBook {
myBook *thisBk = [self.myLibrary
objectAtIndex:self.currentBookNumber];
return thisBk;
}
现在我的问题是,如果我想从在MyLibrary获取数据,并在我viewDidLoad中调用这个,我将只得到零的称号......没我有什么错?
- (void)viewDidLoad {
[self setupLibrary];
NSLog(@"TitleName:%@", currentBook.titleName);
问题我见:
数字1: 我希望currentBook方法的返回类型是一个错字。我看到 - (NmyBook *)...应该不是 - (myBook *)?
编号2: 您从未初始化当前对象。在您致电NSLog之前,您应该去
currentBook = [self currentBook];
其中[self currentBook]调用currentBook方法并将返回的对象设置为currentBook对象。
最后,尽量不要使用变量和方法的名称:)
希望有所帮助。
您必须使用self.currentBook.titleName
。 currentBook.titleName
不会触发您的访问者。
顺便说一句,您的setupLibrary
泄漏。您需要在最后的[myLibrary addObject:newBook]
呼叫后添加[newBook release]
。
您曾调用过一个属性currentBook和一个方法currentBook: 通常它可以工作,但您应该调用方法getCurrentBook;
,并获得在班上的地产是使用:
[self.theProperty method];
用途:
newBook.titleName = [NSString stringWithFormat:@"Test"];
newBook.titleColor = [NSString stringWithFormat:@"Orange"];
后,您可以拨打:
NSLog(@"TitleName:%@", self.currentBook.titleName);
答案有帮助吗?请选择正确的答案...如果不是,请评论让我们知道它没有帮助。 :) – Sid 2011-05-19 07:48:40