-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathQuestion.m
117 lines (102 loc) · 2.72 KB
/
Question.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
//
// Question.h
// unnamed
//
// Created by Bruce Ng on 2/17/15.
// Copyright (c) 2015 com.yahoo. All rights reserved.
//
#import "Question.h"
#import <Parse/Parse.h>
#import "Answer.h"
NSInteger const resultCount = 20;
@implementation Question
@dynamic objectId;
@dynamic user;
@dynamic text;
@dynamic numAnswers;
@dynamic answerTexts;
@dynamic answerVoteCounts;
@dynamic anonymous;
@dynamic complete;
@dynamic createdAt;
@dynamic isTextSurvey;
@dynamic questionPhotos;
- (id)initWithText:(NSString *)text {
self = [super init];
if (self) {
self.text = text;
self.user = [PFUser currentUser];
self.anonymous = NO;
self.complete = NO;
}
return self;
}
+ (void)load {
[self registerSubclass];
}
+ (NSString *)parseClassName {
return @"Question";
}
- (NSArray *)createAnswersFromQuestion {
if (self.isTextSurvey) {
return [self createTextAnswersFromQuestion];
} else {
return [self createPhotoAnswersFromQuestion];
}
}
- (NSArray *)createTextAnswersFromQuestion {
NSMutableArray *answers = [NSMutableArray array];
for (int i = 0; i < self.numAnswers; i++) {
Answer *answer = [[Answer alloc] init];
answer.index = i;
answer.count = [self.answerVoteCounts[i] integerValue];
answer.text = self.answerTexts[i];
[answers addObject:answer];
}
return answers;
}
- (NSArray *)createPhotoAnswersFromQuestion {
NSMutableArray *answers = [NSMutableArray array];
for (int i = 0; i < self.numAnswers; i++) {
Answer *answer = [[Answer alloc] init];
answer.index = i;
answer.count = [self.answerVoteCounts[i] integerValue];
switch (i) {
case 0:
{
answer.photoFile = self.questionPhotos.answerPhoto1;
break;
}
case 1:
{
answer.photoFile = self.questionPhotos.answerPhoto2;
break;
}
case 2:
{
answer.photoFile = self.questionPhotos.answerPhoto1;
break;
}
case 3:
{
answer.photoFile = self.questionPhotos.answerPhoto1;
break;
}
}
[answer.photoFile getDataInBackgroundWithBlock:^(NSData *imageData, NSError *error) {
if (!error) {
answer.photo = [UIImage imageWithData:imageData];
}
}];
[answers addObject:answer];
}
return answers;
}
- (NSInteger)getTotalVotes {
NSInteger totalVotes = 0;
for (int i = 0; i < self.numAnswers; i++) {
totalVotes += [self.answerVoteCounts[i] integerValue];
}
return totalVotes;
}
@end