私はtutorialから取られたのObjective-Cのコードのこの部分があります:私は、コードを記述する必要がありますなぜ私の質問があるアクセサーをいつ使用するのか、属性に直接アクセスするのはいつですか?
@interface FailedBankListViewController : UITableViewController
<NSFetchedResultsControllerDelegate> {
NSFetchedResultsController *fetchedResultsController_;
NSManagedObjectContext *context_;
}
@property (nonatomic, retain) NSFetchedResultsController *fetchedResultsController;
@property (nonatomic, retain) NSManagedObjectContext *context;
@end
:私はこれを持って私の宣言ファイルで
- (NSFetchedResultsController *)fetchedResultsController {
if (fetchedResultsController_ != nil) {
return fetchedResultsController_;
}
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"FailedBankInfo"
inManagedObjectContext:self.context];
[fetchRequest setEntity:entity];
NSSortDescriptor *sort = [[NSSortDescriptor alloc] initWithKey:@"details.closeDate" ascending:NO];
[fetchRequest setSortDescriptors:[NSArray arrayWithObject:sort]];
[fetchRequest setFetchBatchSize:20];
NSFetchedResultsController *theFetchedResultsController = [[NSFetchedResultsController alloc]
initWithFetchRequest:fetchRequest
managedObjectContext:self.context
sectionNameKeyPath:nil
cacheName:@"Root"];
self.fetchedResultsController = theFetchedResultsController;
fetchedResultsController_.delegate = self;
[sort release];
[fetchRequest release];
[theFetchedResultsController release];
return fetchedResultsController_;
}
をそのように、一度私たちはアクセサ使用したら、私たちは、直接属性にアクセス:
if (fetchedResultsController_ != nil) {
return fetchedResultsController_;
}
// AND
self.fetchedResultsController = theFetchedResultsController;
を、これは動作しません。
if (self.fetchedResultsController != nil) {
return self.fetchedResultsController;
}
// AND
fetchedResultsController_ = theFetchedResultsController;
アクセサーをいつ使用する必要がありますか?アクセサーを使用する必要があるのはいつですか?
ご協力いただきありがとうございます。