-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathObjective c CodeGuide.h
132 lines (80 loc) · 3.4 KB
/
Objective c CodeGuide.h
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
118
119
120
121
122
123
124
125
126
127
//
// CodeGuide.h
// Rocket
//
// Created by Администратор on 8/6/13.
// Copyright (c) 2013 Саша. All rights reserved.
//
1)Названия классов:
1.1) модели:
@interface MainGamePlayerDataSource
@interface NextGameDataSource
1.2) контроллеры:
@interface StartGameController
1.3) представления:
@interface PlayerStateIndicatorView
1.4) фабрики:
@interface EffectsOnPlayerFactory
1.5) наблюдатели:
@interface PlayerActionObserver
2)Названия локальных переменных:
int sparkLines
int indent
3)Названия переменных класса:
NSDictionary *_mainGamePlayer
MainGameResultDelegate *_resultDelegate
4)Названия констант:
kBatchNodeZOrder
kBackGroundZOrder
5)если константы образуют одну группу, то объединяем их в перечисления:
typedef enum {
kBatchNodeZOrder,
kRocketBatchNodeAndMenuZOrder,
} ScreenZOrder;
6) названия методов:
-(void)createStaticScreenImages
-(void)createIndicator
7) если существует переменная с таким названием как и аргумент, то прибавляем префикс
а (аргумент).
-(void)createBackground: (CCSpriteBatchNode*)aBatchNode
8) если метод со многими аргументами то разбиваем их построчно:
-(void)setSprite:(CCSprite*)sprite
inBatchNode: (CCSpriteBatchNode*)aBatchNode
position: (CGPoint)point
zValue: (ScreenOrder)zValue
9) используем пояснительные временные переменные для удобочитаемости кода:
int sparkLines = 3;
int indent = 0;
11) если функция получилась слишком большой то пытаемся разбить её на подфункции(>20 строчек):
-(void)createStaticScreenImages{
[self createBackground: batchNode];
[self createLight: batchNode];
[self createLogos: batchNode];
}
12) позиция фигурных скобок и строковые разделители между ними:{
[self createBackground: batchNode];
[self createLight: batchNode];
[self createLogos: batchNode];
}
13) используем макросы #define для определения имён файлов, пише их как и константы вверху файла:
#define loadGamePlistForSpriteSheet @"LoadGame.plist"
#define texturesForSpriteSheet @"LoadGame.png"
NSString *const texturesForSpriteSheet = @"LoadGame.png";
14) блоки:
typedef void(^BuyCallback)(void)
typedef void(^CollisionEvent)(void)
typedef BOOL(^UseBonusHandler)(void)
CollisionEvent event = ^ {
IncomeComponent *playerIncomeComponent = _player[NSStringFromClass([IncomeComponent class])];
int newPlayerIncome = playerIncomeComponent.income + upMoneyValue + upMoneyValue * playerIncomeComponent.incomePower;
playerIncomeComponent.income = newPlayerIncome;
};
15) категории:
@interface CCLayer (SetMethods)
16)протоколы:
@protocol TransitionManagerDelegateProtocol
-(void)goToScreen: (NSString*) aScreen;
-(void)goToPreviousScene;
@end
17) делаем пробелы между операторами:
[self setEntitiesCount: objectsCount + 1 withAvailablePositions: availablePositions];