Today's Menu  Portugal
journal and plan nutrition
Instance Methods | Class Methods | Properties | List of all members
Z5DataController Class Reference

Singleton interface to both core and remote data sources. More...

#import <Z5DataController.h>

Inheritance diagram for Z5DataController:
Inheritance graph
[legend]
Collaboration diagram for Z5DataController:
Collaboration graph
[legend]

Instance Methods

(NSData *) - googleBase64Data:
 
(instancetype) - init [implementation]
 
(NSString *) - degoogleBase64str: [implementation]
 

Class Methods

(instancetype) + sharedInstance
 
(void) + showQuery:message:
 
(NSString *) + produceRandomkey
 
(void) + labelize:withText:
 
(void) + extraLabelize:withText:
 
(void) + labelizeButton:withText:
 
(void) + labelizeCell:withText:inColor:andDetail:
 
(void) + labelizeCell:withText:image:inColor:andDetail:
 
(UIButton *) + makeGradientButton:withFrame:andFont:
 
(UIImage *) + imageNamed:sizedToPortrait:
 
(UIImage *) + imageNamed:sizedToLandscape:
 
(void) + showAlert:message: [implementation]
 
(UIAlertController *) + produceWaitController: [implementation]
 
(UIImage *) + produceImageWith:andSize: [implementation]
 

Properties

Z5RemoteDataControllerremoteDataController
 
Z5LocalDataControllerlocalDataController
 
UIColor * roseColor
 
UIColor * deepRoseColor
 
UIColor * wheatColor
 
UIColor * pearlColor37
 
UIColor * grapeSkinDeepPurple
 
UIColor * keylimePieColor
 
UIColor * healthKitParamNotQueried
 
UIColor * healthKitParamDeniedAuthColor
 
UIColor * healthKitParamSharedColor
 

Detailed Description

Singleton interface to both core and remote data sources.

The design pattern used is one instance of this class is created, then shared for all access to core data and network resources, as well as some device hardware control. The one, shared, instance creates one each LocalDataController and RemoteDataController.

Typically, the only external reference to the Data-Controller is '.sharedInstance'. Convenience functions are also provided to pop alerts and wait indicators.

Definition at line 13 of file Z5DataController.h.

Method Documentation

◆ degoogleBase64str:()

- (NSString *) degoogleBase64str: (NSString *)  googEncodeString
implementation

Definition at line 65 of file Z5DataController.m.

65  :(NSString *)googEncodeString;
66 {
67  NSString *step1 = [googEncodeString stringByReplacingOccurrencesOfString:@"_" withString:@"/"];
68  NSString *step2 = [step1 stringByReplacingOccurrencesOfString:@"-" withString:@"+"];
69  return step2;
70 }

◆ extraLabelize:withText:()

+ (void) extraLabelize: (UILabel *)  targLabel
withText: (NSString *)  txt 

Definition at line 226 of file Z5DataController.m.

226  : (UILabel *) targLabel withText: (NSString *) txt
227 {
228  [targLabel setNumberOfLines:0];
229  if ([targLabel respondsToSelector:@selector(setAttributedText:)]) {
230  UIFont *herefont = [UIFont fontWithName:@"Helvetica-Bold" size:14];
231  // [attributedString addAttribute:NSFontAttributeName value:font range:NSMakeRange(0, [attributedString length])];
232  NSDictionary *attribs = @{
233  NSForegroundColorAttributeName: targLabel.textColor,
234  NSFontAttributeName: herefont
235  };
236  NSMutableAttributedString *attributedText =
237  [[NSMutableAttributedString alloc] initWithString:txt
238  attributes:attribs];
239  [targLabel setAttributedText:attributedText];
240 
241  } else {
242  [targLabel setText:txt];
243  }
244  [targLabel setTextAlignment:NSTextAlignmentCenter];
245 
246  targLabel.layer.cornerRadius = 8;
247  targLabel.layer.borderColor = [[UIColor blackColor] CGColor];
248  targLabel.layer.borderWidth = 3.0;
249 
250  targLabel.clipsToBounds = YES;
251 
252  CAGradientLayer *gradientLayer = [CAGradientLayer layer];
253  CGRect overFlowBounds = targLabel.layer.bounds;
254  // overFlowBounds.size.height -= 2.0;
255  overFlowBounds.size.height += 222.0;
256  gradientLayer.frame = overFlowBounds;
257 
258 // gradientLayer.colors = [NSArray arrayWithObjects:
259 // (id)[UIColor colorWithWhite:1.0f alpha:0.1f].CGColor,
260 // (id)[UIColor colorWithWhite:0.4f alpha:0.5f].CGColor,
261 // nil];
262  gradientLayer.colors = [NSArray arrayWithObjects:
263  (id)[UIColor colorWithWhite:1.0f alpha:1.0f].CGColor,
264  (id)[UIColor colorWithWhite:0.4f alpha:1.0f].CGColor,
265  nil];
266 
267  gradientLayer.locations = [NSArray arrayWithObjects:
268  [NSNumber numberWithFloat:0.0f],
269  [NSNumber numberWithFloat:1.0f],
270  nil];
271 
272  gradientLayer.cornerRadius = 6; // refillButton.layer.cornerRadius;
273  // commented 8/13/18 - [targLabel.layer addSublayer:gradientLayer];
274 
275 }

◆ googleBase64Data:()

- (NSData *) googleBase64Data: (NSString *)  googEncodeString

Definition at line 71 of file Z5DataController.m.

71  :(NSString *)googEncodeString;
72 {
73  NSString *step1 = [googEncodeString stringByReplacingOccurrencesOfString:@"_" withString:@"/"];
74  NSString *step2 = [step1 stringByReplacingOccurrencesOfString:@"-" withString:@"+"];
75  NSData *decodedData = [[NSData alloc] initWithBase64EncodedString:step2 options:0];
76  return decodedData;
77 }

◆ imageNamed:sizedToLandscape:()

+ (UIImage *) imageNamed: (NSString *)  imageName
sizedToLandscape: (CGSize)  imageSize 

Definition at line 90 of file Z5DataController.m.

90  :(NSString *)imageName sizedToLandscape:(CGSize)imageSize
91 {
92  UIImage *backgrdImage = [UIImage imageNamed:imageName];
93  CGSize photoSize = [backgrdImage size];
94 
95 
96  float resizeRatio = photoSize.width / imageSize.width;
97  UIImage *resizedImage = [UIImage imageWithCGImage:[backgrdImage CGImage]
98  scale:backgrdImage.scale * resizeRatio
99  orientation:(backgrdImage.imageOrientation) ];
100  return resizedImage;
101 }

◆ imageNamed:sizedToPortrait:()

+ (UIImage *) imageNamed: (NSString *)  imageName
sizedToPortrait: (CGSize)  imageSize 

Definition at line 79 of file Z5DataController.m.

79  :(NSString *)imageName sizedToPortrait:(CGSize)imageSize
80 {
81  UIImage *backgrdImage = [UIImage imageNamed:imageName];
82  CGSize photoSize = [backgrdImage size];
83 
84  float resizeRatio = photoSize.height / imageSize.height;
85  UIImage *resizedImage = [UIImage imageWithCGImage:[backgrdImage CGImage]
86  scale:backgrdImage.scale * resizeRatio
87  orientation:(backgrdImage.imageOrientation) ];
88  return resizedImage;
89 }

◆ init()

- (instancetype) init
implementation

Definition at line 40 of file Z5DataController.m.

41 {
42  self = [super init];
43  if (self) {
44  _remoteDataController = [[Z5RemoteDataController alloc] init];
45  _localDataController = [[Z5LocalDataController alloc] init];
46  // _incomingPhotosDictionary = [[NSMutableDictionary alloc] init];
47  // _incomingMessageHeadersDictionary = [[NSMutableDictionary alloc] init];
48  // _incomingMessagesDictionary = [[NSMutableDictionary alloc] init];
49  _roseColor = [UIColor colorWithRed:1.0 green:227.0/255.0 blue:235.0/255.0 alpha:1.0]; // 255, 227, 235
50  _deepRoseColor = [UIColor colorWithRed:0.3 green:243.0/255.0 blue:243.0/255.0 alpha:1.0]; // 255, 227, 235
51  _wheatColor = [UIColor colorWithRed:245.0/255.0 green:222.0/255.0 blue:179.0/255.0 alpha:1.0];
52  _grapeSkinDeepPurple = [UIColor colorWithRed:127/255 green:37/255 blue:34/255 alpha:1.0];
53  _pearlColor37 = [UIColor colorWithRed:0.0/255.0 green:255.0/255.0 blue:153.0/255.0 alpha:1.0];
54  _keylimePieColor = [UIColor colorWithRed:0.64 green:1.0 blue:1.0 alpha:1.0];
55  _healthKitParamNotQueried = [UIColor colorWithRed:255.0/255.0 green:255.0/255.0 blue:204.0/255.0 alpha:1.0];
56  _healthKitParamDeniedAuthColor = [UIColor colorWithRed:255.0/255.0 green:204.0/255.0 blue:230.0/255.0 alpha:1.0];
57  _healthKitParamSharedColor = [UIColor colorWithRed:102.0/255.0 green:255.0/255.0 blue:255.0/255.0 alpha:1.0];
58  }
59  return self;
60 }
Interface for remote access, to either open web or google drive.

◆ labelize:withText:()

+ (void) labelize: (UILabel *)  targLabel
withText: (NSString *)  txt 

Definition at line 203 of file Z5DataController.m.

203  : (UILabel *) targLabel withText: (NSString *) txt
204 {
205  [targLabel setNumberOfLines:0];
206  if (nil == txt) {
207  [targLabel setText:@"err"];
208  } else if ([targLabel respondsToSelector:@selector(setAttributedText:)]) {
209  UIFont *herefont = [UIFont fontWithName:@"DamascusBold" size:12];
210  // [attributedString addAttribute:NSFontAttributeName value:font range:NSMakeRange(0, [attributedString length])];
211  NSDictionary *attribs = @{
212  NSForegroundColorAttributeName: targLabel.textColor,
213  NSFontAttributeName: herefont
214  };
215  NSMutableAttributedString *attributedText =
216  [[NSMutableAttributedString alloc] initWithString:txt
217  attributes:attribs];
218  [targLabel setAttributedText:attributedText];
219 
220  } else {
221  [targLabel setText:txt];
222  }
223  [targLabel setTextAlignment:NSTextAlignmentCenter];
224 
225 }

◆ labelizeButton:withText:()

+ (void) labelizeButton: (UIButton *)  targButton
withText: (NSString *)  txt 

Definition at line 188 of file Z5DataController.m.

188  : (UIButton *) targButton withText: (NSString *) txt
189 {
190  UIFont *herefont = [UIFont fontWithName:@"Helvetica-Bold" size:18];
191  // [attributedString addAttribute:NSFontAttributeName value:font range:NSMakeRange(0, [attributedString length])];
192  NSDictionary *attribs = @{
193  // NSForegroundColorAttributeName: targButton.currentTitleColor,
194  NSForegroundColorAttributeName: [UIColor blackColor],
195  NSFontAttributeName: herefont
196  };
197  NSMutableAttributedString *attributedText =
198  [[NSMutableAttributedString alloc] initWithString:txt
199  attributes:attribs];
200  NSLog(@"Z5DataController.labelizeButton: %@", txt);
201  [targButton setAttributedTitle:attributedText forState:UIControlStateNormal];
202 }

◆ labelizeCell:withText:image:inColor:andDetail:()

+ (void) labelizeCell: (UITableViewCell *)  targCell
withText: (NSString *)  txt
image: (NSData *)  cellImage
inColor: (UIColor *)  color
andDetail: (NSString *)  detailTxt 

Definition at line 331 of file Z5DataController.m.

331  : (UITableViewCell *)targCell withText: (NSString *)txt image: (NSData *)cellImage inColor:(UIColor *)color andDetail: (NSString *)detailTxt;
332 {
333  assert(targCell);
334  [[targCell textLabel] setNumberOfLines:0];
335 
336 
337  if ([targCell.textLabel respondsToSelector:@selector(setAttributedText:)]) {
338  UIFont *herefont = [UIFont fontWithName:@"Helvetica-Bold" size:12];
339  NSDictionary *attribs = @{
340  NSForegroundColorAttributeName: targCell.textLabel.textColor,
341  NSFontAttributeName: herefont,
342  };
343  if (txt) {
344  NSMutableAttributedString *attributedText =
345  [[NSMutableAttributedString alloc] initWithString:txt
346  attributes:attribs];
347  [targCell.textLabel setAttributedText:attributedText];
348  }
349 
350  UIFont *detailFont = [UIFont fontWithName:@"Helvetica-Bold" size:10];
351  // UIFont *detailFont = [UIFont fontWithName:@"DamascusLight" size:14];
352  NSDictionary *detailAttribs = @{
353  NSForegroundColorAttributeName: [UIColor blackColor],
354  NSFontAttributeName: detailFont };
355  if (detailTxt) {
356  NSMutableAttributedString *attributedDetailText =
357  [[NSMutableAttributedString alloc] initWithString:detailTxt
358  attributes:detailAttribs];
359  [targCell.detailTextLabel setAttributedText:attributedDetailText];
360  } else {
361  UIColor *burntSienaColor = [UIColor colorWithRed:233/256 green:116/256 blue:81/256 alpha:1.0];
362  [targCell.detailTextLabel setBackgroundColor:burntSienaColor];
363  }
364 
365 
366  } else {
367  [targCell.textLabel setText:txt];
368  [targCell.detailTextLabel setText:detailTxt];
369  }
370  // CGRect textBounds = targCell.textLabel.bounds;
371  [targCell setBackgroundColor:color];
372 
373  UIImage *mailImage = [UIImage imageWithData:cellImage];
374  // UIImageView *mailImageView = [[UIImageView alloc] initWithImage:mailImage];
375  CGSize cellImageSize = CGSizeMake(32, 32);
376  UIImage *smallImage = [self produceImageWith:mailImage andSize:cellImageSize];
377  [targCell.imageView initWithImage:smallImage];
378 
379  CGRect fetchPublishButton1Frame = CGRectMake(0,0,30,30);
380  UIButton *pushMe = [[UIButton alloc] initWithFrame:fetchPublishButton1Frame];
381  [pushMe setTitle:@"GO" forState:UIControlStateApplication];
382  [pushMe setBackgroundColor:[UIColor greenColor]];
383 
384  targCell.accessoryView = pushMe;
385 
386 }

◆ labelizeCell:withText:inColor:andDetail:()

+ (void) labelizeCell: (UITableViewCell *)  targCell
withText: (NSString *)  txt
inColor: (UIColor *)  color
andDetail: (NSString *)  detailTxt 

Definition at line 276 of file Z5DataController.m.

276  : (UITableViewCell *)targCell withText: (NSString *)txt inColor:(UIColor *)cellColor andDetail: (NSString *)detailTxt
277 {
278 
279  assert(targCell);
280  [[targCell textLabel] setNumberOfLines:0];
281 
282  if ([targCell.textLabel respondsToSelector:@selector(setAttributedText:)]) {
283  UIFont *herefont = [UIFont fontWithName:@"Helvetica-Bold" size:16];
284  NSShadow *hereShade = [[NSShadow alloc] init];
285  [hereShade setShadowColor:[UIColor whiteColor]];
286  CGSize shadeSize = CGSizeMake(8, 8);
287  [hereShade setShadowOffset:shadeSize];
288 
289  NSDictionary *attribs = @{
290  NSForegroundColorAttributeName: targCell.textLabel.textColor,
291  NSFontAttributeName: herefont,
292  NSShadowAttributeName: hereShade,
293  };
294  if (txt) {
295  NSMutableAttributedString *attributedText =
296  [[NSMutableAttributedString alloc] initWithString:txt
297  attributes:attribs];
298  [targCell.textLabel setAttributedText:attributedText];
299  }
300 
301  UIFont *detailFont = [UIFont fontWithName:@"Helvetica-Bold" size:10];
302  // UIFont *detailFont = [UIFont fontWithName:@"DamascusLight" size:14];
303  NSDictionary *detailAttribs = @{
304  NSForegroundColorAttributeName: [UIColor blackColor],
305  NSFontAttributeName: detailFont };
306  if (detailTxt) {
307  NSMutableAttributedString *attributedDetailText =
308  [[NSMutableAttributedString alloc] initWithString:detailTxt
309  attributes:detailAttribs];
310  [targCell.detailTextLabel setAttributedText:attributedDetailText];
311  } else {
312  UIColor *burntSienaColor = [UIColor colorWithRed:233/256 green:116/256 blue:81/256 alpha:1.0];
313  [targCell.detailTextLabel setBackgroundColor:burntSienaColor];
314  }
315  } else {
316  [targCell.textLabel setText:txt];
317  [targCell.detailTextLabel setText:detailTxt];
318  }
319  [targCell setBackgroundColor:cellColor];
320 }

◆ makeGradientButton:withFrame:andFont:()

+ (UIButton *) makeGradientButton: (NSString *)  caption
withFrame: (CGRect)  buttonFrame
andFont: (UIFont *)  buttonFont 

Definition at line 387 of file Z5DataController.m.

387  :(NSString *) caption
388  withFrame:(CGRect) buttonFrame
389  andFont:(UIFont *) buttonFont
390 {
391  // CGRect menuButtonFrame = CGRectMake(100, 100, 80, 120);
392  UIButton *menuButton = [UIButton buttonWithType:UIButtonTypeCustom];
393  [menuButton setFrame:buttonFrame];
394 
395  [menuButton setBackgroundColor:[UIColor colorWithRed:0.9 green:0.9 blue:0.9 alpha:0.4]];
396 
397  menuButton.layer.cornerRadius = 8;
398  menuButton.layer.borderColor = [[UIColor blackColor] CGColor];
399  menuButton.layer.borderWidth = 3.0;
400 
401  [menuButton setTitle:caption forState:UIControlStateNormal];
402  [menuButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
403  if (buttonFont) {
404  [menuButton.titleLabel setFont:buttonFont];
405  } else {
406  UIFont *expandedFont = [UIFont fontWithName:@"Georgia-Bold" size:24.0];
407  [menuButton.titleLabel setFont:expandedFont];
408  }
409  menuButton.clipsToBounds = YES;
410 
411  CAGradientLayer *gradientLayer = [CAGradientLayer layer];
412  CGRect overFlowBounds = menuButton.layer.bounds;
413  overFlowBounds.size.height -= 2.0;
414  gradientLayer.frame = overFlowBounds;
415 
416  gradientLayer.colors = [NSArray arrayWithObjects:
417  (id)[UIColor colorWithWhite:1.0f alpha:0.1f].CGColor,
418  (id)[UIColor colorWithWhite:0.4f alpha:0.5f].CGColor,
419  nil];
420 
421  gradientLayer.locations = [NSArray arrayWithObjects:
422  [NSNumber numberWithFloat:0.0f],
423  [NSNumber numberWithFloat:1.0f],
424  nil];
425 
426  gradientLayer.cornerRadius = 6; // refillButton.layer.cornerRadius;
427  [menuButton.layer addSublayer:gradientLayer];
428  return menuButton;
429 }
static Y3GradientButton * menuButton

◆ produceImageWith:andSize:()

+ (UIImage *) produceImageWith: (UIImage *)  startImage
andSize: (CGSize)  newSize 
implementation

Definition at line 321 of file Z5DataController.m.

321  :(UIImage *)startImage andSize:(CGSize)newSize
322 {
323  UIGraphicsImageRenderer *renderer = [[UIGraphicsImageRenderer alloc] initWithSize:newSize];
324  UIImage *image = [renderer imageWithActions:^(UIGraphicsImageRendererContext*_Nonnull myContext) {
325  [startImage drawInRect:(CGRect) {.origin = CGPointZero, .size = newSize}];
326  }];
327  return image;
328 }

◆ produceRandomkey()

+ (NSString *) produceRandomkey

Definition at line 173 of file Z5DataController.m.

174 {
175  const NSUInteger nPawnRandomKeyLength = 20;
176  NSString *pawnShopLetters = @"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
177 
178  NSMutableString *randomString = [NSMutableString stringWithCapacity: nPawnRandomKeyLength];
179  for (int i=0; i<nPawnRandomKeyLength; i++) {
180  // NSLog(@"DataManager.produceRandomKey: arc4random: %u random: %ld", arc4random(), random() );
181  int indexPosition = arc4random() % [pawnShopLetters length];
182  [randomString appendFormat: @"%C", [pawnShopLetters characterAtIndex:indexPosition]];
183  }
184  // NSLog(@"Z5Data.produceRandomkey: %@", randomString);
185  return randomString;
186 }

◆ produceWaitController:()

+ (UIAlertController *) produceWaitController: (NSString *)  title
implementation

Helper for showing a wait indicator in a popup

Definition at line 141 of file Z5DataController.m.

141  :(NSString *)title
142 {
143  UIAlertController* alert = [UIAlertController alertControllerWithTitle:@"Alert Control"
144  message:title preferredStyle:UIAlertControllerStyleAlert];
145 
146  UIAlertAction* defaultAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault
147  handler:^(UIAlertAction * action) {}];
148 
149  [alert addAction:defaultAction];
150  return alert;
151  // [self presentViewController:alert animated:YES completion:nil];
152 }

◆ sharedInstance()

+ (instancetype) sharedInstance

This method is the main external call to this module, it returns the shared Z5DataController. The first time it is called, it creates its two subsidiary parts, local and remote.

Definition at line 30 of file Z5DataController.m.

31 {
32  static id instance;
33  static dispatch_once_t onceToken;
34  dispatch_once(&onceToken, ^{
35  instance = [self new];
36  });
37  return instance;
38 }

◆ showAlert:message:()

+ (void) showAlert: (NSString *)  title
message: (NSString *)  message 
implementation

Helper for showing an alert

Definition at line 124 of file Z5DataController.m.

124  :(NSString *)title message:(NSString *)message
125 {
126  UIAlertController *alertCntrlr;
127  alertCntrlr = [UIAlertController alertControllerWithTitle: title
128  message: message
129  preferredStyle:UIAlertControllerStyleAlert];
130 
131  UIAlertAction* defaultAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault
132  handler:^(UIAlertAction * action) {}];
133  [alertCntrlr addAction:defaultAction];
134  // [self presentViewController:alert animated:YES completion:nil];
135  // [alert show];
136 }

◆ showQuery:message:()

+ (void) showQuery: (NSString *)  title
message: (NSString *)  message 

Helper for showing an alert

Definition at line 106 of file Z5DataController.m.

106  :(NSString *)title message:(NSString *)message
107 {
108  UIAlertController* alert = [UIAlertController alertControllerWithTitle:title
109  message:message
110  preferredStyle:UIAlertControllerStyleAlert];
111 
112  UIAlertAction* defaultAction = [UIAlertAction actionWithTitle:@"Don't change" style:UIAlertActionStyleDefault
113  handler:^(UIAlertAction * action) {}];
114 
115  [alert addAction:defaultAction];
116  UIAlertAction* useNewAction = [UIAlertAction actionWithTitle:@"New" style:UIAlertActionStyleDefault
117  handler:^(UIAlertAction * action) {}];
118 
119  [alert addAction:useNewAction];
120 }

Property Documentation

◆ deepRoseColor

- (UIColor*) deepRoseColor
readwritenonatomicstrong

Definition at line 36 of file Z5DataController.h.

◆ grapeSkinDeepPurple

- (UIColor*) grapeSkinDeepPurple
readwritenonatomicstrong

Definition at line 39 of file Z5DataController.h.

◆ healthKitParamDeniedAuthColor

- (UIColor*) healthKitParamDeniedAuthColor
readwritenonatomicstrong

Definition at line 42 of file Z5DataController.h.

◆ healthKitParamNotQueried

- (UIColor*) healthKitParamNotQueried
readwritenonatomicstrong

Definition at line 41 of file Z5DataController.h.

◆ healthKitParamSharedColor

- (UIColor*) healthKitParamSharedColor
readwritenonatomicstrong

Definition at line 43 of file Z5DataController.h.

◆ keylimePieColor

- (UIColor*) keylimePieColor
readwritenonatomicstrong

Definition at line 40 of file Z5DataController.h.

◆ localDataController

- (Z5LocalDataController*) localDataController
readnonatomicstrong

Definition at line 16 of file Z5DataController.h.

◆ pearlColor37

- (UIColor*) pearlColor37
readwritenonatomicstrong

Definition at line 38 of file Z5DataController.h.

◆ remoteDataController

- (Z5RemoteDataController*) remoteDataController
readnonatomicstrong

Definition at line 15 of file Z5DataController.h.

◆ roseColor

- (UIColor*) roseColor
readwritenonatomicstrong

Definition at line 35 of file Z5DataController.h.

◆ wheatColor

- (UIColor*) wheatColor
readwritenonatomicstrong

Definition at line 37 of file Z5DataController.h.


The documentation for this class was generated from the following files: