Guest User

Untitled

a guest
Jul 17th, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.16 KB | None | 0 0
  1. //
  2. // Controller.m
  3. //
  4.  
  5. #import "Controller.h"
  6.  
  7. @implementation Controller
  8. @synthesize shape, decreaseButton, increaseButton, numberOfSidesLabel;
  9. - (IBAction)decrease:(id)sender {
  10. NSLog(@"Decrease");
  11. [shape setNumberOfSides:shape.numberOfSides-1];
  12. [self updateInterface];
  13. }
  14.  
  15. - (IBAction)increase:(id)sender {
  16. NSLog(@"Increase");
  17. [shape setNumberOfSides:shape.numberOfSides];
  18. [self updateInterface];
  19. }
  20.  
  21. -(void)updateInterface {
  22. NSLog(@"Past First");
  23. decreaseButton.enabled = (shape.numberOfSides == shape.minimumNumberOfSides)?NO:YES;
  24. NSLog(@"Past First");
  25. increaseButton.enabled = (shape.numberOfSides == shape.maximumNumberOfSides)?YES:NO;
  26. NSLog(@"Past First");
  27. numberOfSidesLabel.text = [NSString stringWithFormat: @"%d",shape.numberOfSides];
  28. NSLog(@"Past First");
  29. }
  30.  
  31. -(void)awakeFromNib {
  32. // Initiate the PolygonShape
  33. [shape init];
  34. NSLog(@"The Polygon: %@",shape);
  35. }
  36. @end
  37. //
  38. // Controller.h
  39.  
  40. #import <UIKit/UIKit.h>
  41. #import <Foundation/Foundation.h>
  42. #import "PolygonShape.h"
  43.  
  44. @interface Controller : NSObject {
  45. IBOutlet UIButton *decreaseButton;
  46. IBOutlet UIButton *increaseButton;
  47. IBOutlet UILabel *numberOfSidesLabel;
  48. IBOutlet PolygonShape *shape;
  49. }
  50. @property (retain) IBOutlet UIButton *decreaseButton;
  51. @property (retain) IBOutlet UIButton *increaseButton;
  52. @property (retain) IBOutlet UILabel *numberOfSidesLabel;
  53. @property (retain) IBOutlet PolygonShape *shape;
  54. - (IBAction)decrease:(id)sender;
  55. - (IBAction)increase:(id)sender;
  56. -(void)updateInterface;
  57. @end
  58. //
  59. // PolygonShape.h
  60.  
  61. #import <Foundation/Foundation.h>
  62.  
  63.  
  64. @interface PolygonShape : NSObject {
  65. int numberOfSides;
  66. int maximumNumberOfSides;
  67. int minimumNumberOfSides;
  68. NSString *name;
  69. }
  70. @property int numberOfSides;
  71. @property int maximumNumberOfSides;
  72. @property int minimumNumberOfSides;
  73. @property (retain) NSString *name;
  74.  
  75. -(id)initWithNumberOfSides:(int)sides maximumNumberOfSides:(int)max minimumNumberOfSides:(int)min;
  76. -(id)init;
  77. -(void)makeNumberOfSides:(int)numSides;
  78. -(float)getAngleInDegrees;
  79. -(float)getAngleInRadians;
  80.  
  81. @end
  82. //
  83. // PolygonShape.m
  84.  
  85. #import "PolygonShape.h"
  86.  
  87.  
  88. @implementation PolygonShape
  89. @synthesize numberOfSides, maximumNumberOfSides, minimumNumberOfSides, name;
  90.  
  91. -(void)makeNumberOfSides:(int)numSides {
  92. if((numSides < maximumNumberOfSides) && (numSides > minimumNumberOfSides)) {
  93. self.numberOfSides = numSides;
  94. }
  95. }
  96.  
  97. -(float)getAngleInDegrees {
  98. return (180*((self.numberOfSides-2)/2));
  99. }
  100. -(float)getAngleInRadians {
  101. return ([self getAngleInDegrees] * (M_PI/180));
  102. }
  103.  
  104. -(id)initWithNumberOfSides:(int)sides maximumNumberOfSides:(int)max minimumNumberOfSides:(int)min {
  105. self.maximumNumberOfSides = max; self.minimumNumberOfSides = min;
  106. if(sides < self.minimumNumberOfSides) {
  107. sides = self.minimumNumberOfSides;
  108. }
  109. if(sides > self.maximumNumberOfSides) {
  110. sides = self.maximumNumberOfSides;
  111. }
  112. [self setNumberOfSides:sides];
  113. return [self autorelease];
  114. }
  115.  
  116. -(id)init {
  117. return [self initWithNumberOfSides:5 maximumNumberOfSides:10 minimumNumberOfSides: 3];
  118. }
  119.  
  120. -(NSString *)description {
  121. return [NSString stringWithFormat: @"%d sided polygon.",self.numberOfSides];
  122. }
  123.  
  124. @end
Add Comment
Please, Sign In to add comment