Вы можете использовать следующий метод ....
- (void)queryForKey:(NSString *)aKey view:(UIView *)aView countView:(UIView *)aCountView {
PFQuery * query = [PFQuery queryWithClassName:@"Vote"];
query.cachePolicy = kPFCachePolicyNetworkElseCache;
[query whereKey:@"poll" equalTo:self.vote];
[query whereKey:aKey notEqualTo:nil];
[query countObjectsInBackgroundWithBlock:^(int number, NSError * error) {
count = number;
[aCountView addSubview:self.generateCountLabel];
if (count > 0){
[aView setUserInteractionEnabled:YES];
[aView setEnabled:YES];
}
}];
}
Тогда вы можете позвонить ...
[self queryForKey:@"note" view:self.note countView:self.noteCount];
[self queryForKey:@"image" view:self.pic countView:self.picCount];
Если вы уточните свое наименование, вы можете использовать динамические селекторы объектовт. е. для «примечания» у вас есть @ «note», self.note и self.noteCount, чтобы вы могли взять @ «note» и динамически выбирать представления «note» и «noteCount» (так как оба они начинаются с «note»)однако это не сработает для вашего изображения, поскольку у вас есть @ "image", но затем self.pic и self.picCount.
UPDATE
Переименуйте изображение вpic, а затем выставьте четыре представления (picCount, pic, note и noteCount) в качестве свойств.Тогда вы можете использовать что-то вроде этого ...
- (void)queryForKey:(NSString *)aKey {
PFQuery * query = [PFQuery queryWithClassName:@"Vote"];
query.cachePolicy = kPFCachePolicyNetworkElseCache;
[query whereKey:@"poll" equalTo:self.vote];
[query whereKey:aKey notEqualTo:nil];
[query countObjectsInBackgroundWithBlock:^(int number, NSError * error, NSString *aKey) {
[self setValue:number forKey:aKey];
UIView *countView = [self objectForKey:[NSString stringWithFormat:@"%@Count", aKey]];
[countView addSubview:self.generateCountLabel];
if (number > 0){
UIView *mainView = [self objectForKey:aKey];
[mainView setUserInteractionEnabled:YES];
[mainView setEnabled:YES];
}
}];
}
Вам придется поиграть с этим, так как у меня нет полного определения класса, чтобы получить его в точности.