Desertion: Recently found himself to have an empirical problem, not too easy to accept new knowledge, this is engaged in technical research and development of the people are not very reasonable, need to change.
Text: By reading and writing a large number of code I have their own set of programming ideas and habits, self-thinking of their coding habits is good, code structure is also clear, because I have always been code to read more than writing, but the summary of less, knowledge is often not system. After spending a little more time to summarize their own experience and learning knowledge, this is conducive to the guidance of new people, but also more conducive to deepen their knowledge cognition. Start with code specifications today to summarize the good coding specifications in iOS development. We in the development of other people's code often complain at least inside the heart dozens, in fact, others look at your code may also be complaining about you, I am more deeply aware of: Master and Novice have code standard level difference, Master and master have become the difference between ideas, novice in imitation in the more messy. Therefore, team development must have a good and unified coding standards, so as to facilitate team development and rapid maintenance. Write the first article today: Naming conventions in iOS development (OC)
naming Principles
1. General principles: High readability (concise and clear) and prevention of naming conflicts (guaranteed by prefixing).
The names of objective-c are usually long and the name follows the camel-named method. A good naming standard is simply to be able to understand what it means and how to use it when the developer sees the name. In addition, each module to add its own prefix, the prefix is very important in the programming interface, you can distinguish the functional categories of software and prevent the naming conflicts between different files or classes, such as the album Module (photogallery) code is the PG as the prefix: Pgalbumviewcontroller, Pgdatamanager.
generation Code |
reviews |
insertobject:atindex: |
good |
insert:at: |
not clear; At "table?" What? |
removeobjectatindex: |
g Ood |
removeobject: |
Yes, because the law is? To remove an object as a parameter |
remove: |
not clear; What to remove? |
2. Consistency
As much as possible with the programming of the Cocoa
name of consistent. If you're not sure about a named sex, look at the example in the header file or reference document, in the class that makes the Polymorphic method, the name of the sex is often important. The method that implements the same function in different classes should have the same name.
Code |
Reviews |
– (Nsinteger) tag |
There are definitions in NSView, Nscell, NSControl |
– (void) SetStringValue: (NSString *) |
There are definitions in many Cocoa classes. |
Name of the file
The file should have the following extension:
.h |
c/c++/objective-c header file |
.m |
ojbective-c implementation file |
.mm |
ojbective-c++ implementation file |
.cc |
Pure C + + implementation file |
.c |
plain C implementation file |
The file name of the category should contain the extended class name, such as: GTMNSString+Utils.h
or ' gtmnstextview+autocomplete.h '.
Naming of classes
The class name (and the category, protocol name) should be capitalized, and the word will be split in hump format.
1. Prefixes for classes
1) All class names, enumerations, structures, protocol definitions, preferably with a uniform identifier, can be a project abbreviation, or the name of a personal item abbreviation, for example, plus all uppercase hoo (my last name) as a prefix
2) According to the function module, you can add the name prefix of the function module to the class of the function module, such as the profileviewcontroller of the User Center. can be named Hooucprofileviewcontroller.
2. Suffix of class
When all protocol are defined, the suffix delegate is added. such as, Hoorefreshviewdelegate, represents the Refreshview agreement;
All controllers are added with controller, all the notification names plus notification.
Category naming
Class name + identity + extension (uiimageview +hp+web)
Example: If we want to create a Uiimageview-based category for a Web request picture, we should put the category put it in a file named Uiimageview+hpweb.h. Uiimageview is the name of the class to be extended, HP is the exclusive logo , and the Web is extended functionality.
Method naming
The method name should follow the small hump principle, the first letter lowercase, the other words the first letter uppercase, each space division name begins with the verb. The method of execution should start with a verb, a lowercase letter, and a return method should return the content start, but do not add a get before.
Such as:
-(void) Insertmodel: (ID) Model Atindex: (Nsuinteger) atindex;-(instancetype) Arraywitharray: (Nsarray *) array;
Naming of Enumerations
Authentic iOS developers will of course name the enumeration in a objective-c way, such as:
typedef ns_enum (Nsinteger, uiviewanimationtransition) { Uiviewanimationtransitionnone, Uiviewanimationtransitionflipfromleft, uiviewanimationtransitionflipfromright, Uiviewanimationtransitioncurlup, Uiviewanimationtransitioncurldown,};
attribute, variable name
The variable name uses the small hump method, makes the variable name as far as possible to speculate its use attribute to have the descriptive nature. Don't think about playing fewer letters, so that your code can be quickly understood and more important. each attribute is named with a type suffix, such as a button with a Button
suffix and a suffix for the model Model
.
@property (nonatomic, strong) UIButton *submitbutton;
1) class member variable name
Member variables are named with the small hump method and prefixed with an underscore, such as: UIButton *_submitbutton;
2) local variable name
Obey the small hump naming rules, such as:nsinteger numcompletedconnections =3;
CONST constant
Start with lowercase k
, capitalize on the first letter of the word, and rest in lowercase. Such as:
Const float 100.0f;
If a constant is a special meaning it is also recommended to add a suffix, such as a notification plus notification as a suffix, such as:
extern NSString * Const kloginsuccessnotification
Resource file naming (image, localization file)
This image resource naming method, to function as a form of organization, is a good habit, beneficial to view resource files.
Principle:
1) Use words to complete the spelling, or everyone is generally recognized non-discriminatory abbreviations (such as: NAV,BG,BTN, etc.)
2) using the "Module + function" Nomenclature, the module is divided into public modules, private modules. Public module mainly includes unified background , navigation bar, tags, public button backgrounds, public default diagram and so on; Private modules are mainly based on the business function modules of the app , such as User Center, message center, etc.
For example, a user center avatar picture can be named: Uc_imageview_user_icon
Naming conventions in iOS development (OC)