From 511ad4980dffecf8eeafb26a65e5ab60bb6ef3b7 Mon Sep 17 00:00:00 2001 From: Wojciech Nagrodzki <278594+wnagrodzki@users.noreply.github.com> Date: Wed, 19 Feb 2014 21:46:44 +0100 Subject: [PATCH] Grammatical corrections. --- Cocoa Programming Guidelines.pdf | Bin 87437 -> 87753 bytes Cocoa Programming Guidelines.tex | 141 +++++++++++++++---------------- 2 files changed, 70 insertions(+), 71 deletions(-) diff --git a/Cocoa Programming Guidelines.pdf b/Cocoa Programming Guidelines.pdf index 1d58cd80a6252321b3ac0a9ef7c011b5b3fe6900..025e2045a6de0367508c6983808bc841192c1846 100644 GIT binary patch delta 42786 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 K(8#FDBL5H1*X%_A diff --git a/Cocoa Programming Guidelines.tex b/Cocoa Programming Guidelines.tex index d6b1f16..a776cf8 100644 --- a/Cocoa Programming Guidelines.tex +++ b/Cocoa Programming Guidelines.tex @@ -129,12 +129,12 @@ \section{Code Appearance} -Hardly any software is maintained for its whole life by the original author. Writing code in unified way helps engineers to understand it more quickly. +Hardly any software is maintained by its original author for its whole life. Writing code in an unified way helps engineers to understand it more quickly. \subsection{Class names are not prefixed usually} -Prefixes are used only for classes that are to be shared between applications. +Prefixes are used only for classes which are to be shared between applications. \subsection{Protocol names indicates behavior} @@ -148,9 +148,9 @@ Most protocols group related methods that aren’t associated with any class in Some protocols group a number of unrelated methods (rather than create several separate small protocols). These protocols tend to be associated with a class that is the principal expression of the protocol. In these cases, the convention is to give the protocol the same name as the class. An example of this sort of protocol is the NSObject protocol. -\subsection{Header file follows a structure} +\subsection{Header files follow a structure} -Header should be kept as simple as possible. Declarations appears in it in the following order: +Each header file should be succinct, and comply with the following declaration's order: \begin{enumerate} \item Imports @@ -163,7 +163,7 @@ Header should be kept as simple as possible. Declarations appears in it in the f \item Class interface \end{enumerate} -The class interface has a fixed structure as well: +A class interface has a fixed structure as well: \begin{enumerate} \item Properties @@ -173,7 +173,7 @@ The class interface has a fixed structure as well: \item Instance methods \end{enumerate} -Please pay attention to number of separating lines, it is also a rule. +Please pay attention to the linespacing, it is also a rule. \begin{codelisting} #import @@ -225,9 +225,9 @@ extern NSString * const ExampleClassActionNameKey; \end{codelisting} -\subsection{Implementation file is divided by pragma marks} +\subsection{Implementation files are divided by pragma marks} -Methods in implementation file appear in the same order they are declared in the header. They are grouped by pragma marks similar to following: +Methods in an implementation file appear in the same order as they are declared in the header. They are also grouped by pragma marks similar to the following: \begin{codelisting} #pragma mark - Public Properties @@ -242,7 +242,7 @@ Methods in implementation file appear in the same order they are declared in the #pragma mark - Notifications \end{codelisting} -When greater granularity is needed: +In need of greater granularity: \begin{codelisting} #pragma mark - Overridden (UIView) @@ -254,8 +254,8 @@ When greater granularity is needed: Create a code snipped to help you use the same pragma marks through all implementation files. \end{tiplisting} -\subsection{Property attributes are kept in order} -Attributes are kept in the same order through all property declarations. +\subsection{Property attributes are kept in an order} +The attributes are kept in the same order through all property declarations. \begin{codelisting} [assign | weak | strong | copy] + [nonatomic | atomic] + [readonly | readwrite] + [getter = ] @@ -270,7 +270,7 @@ None of the attributes can be omitted with the exception of readwrite. @property (weak, nonatomic) id delegate; \end{codelisting} -Getters for boolean properties should be renamed as follows if they are adjectives. +Getters for boolean properties, if they are adjectives, are renamed in the following manner: \begin{codelisting} @property (assign, nonatomic, getter = isVisible) BOOL visible; @@ -279,9 +279,9 @@ Getters for boolean properties should be renamed as follows if they are adjectiv \end{codelisting} -\subsection{Protocols and constants are prefixed with class name} +\subsection{Protocols and constants are prefixed with a class name} -Protocols, notification names, enumeration types and other constants that refer to particular class are prefixed with the name of that class. +Protocols, notification names, enumeration types and other constants that refer to a particular class are prefixed with the name of that class. \begin{codelisting} typedef NS_ENUM(NSInteger, UITableViewStyle) { @@ -301,7 +301,7 @@ UIKIT_EXTERN NSString *const UITableViewSelectionDidChangeNotification; \subsection{IBOutlets are declared privately} -Outlets are defined as weak properties at the top of class extension, divided by one line from other properties. +Outlets are defined as weak properties at the top of a class extension, and divided by one line from the other properties. \begin{codelisting} @interface PanelViewController () @@ -318,30 +318,30 @@ Outlets are defined as weak properties at the top of class extension, divided by \subsection{Classes may have additional header file for subclasses} -Private methods and properties are never exposed. To provide subclass access to them, they have to be declared in ForSubclassEyesOnly category. It should be placed in separate header file, named in the following manner: [Class Name] + Subclass.h. +Private methods and properties are never exposed. To provide a subclass access to them, they have to be declared in a category entitled ForSubclassEyesOnly. It should be placed in a separate header file, named in the following manner: [Class Name] + Subclass.h. \begin{tiplisting} UIGestureRecognizerSubclass.h is a good example of that approach. \end{tiplisting} -\subsection{Method returns early, returns often} +\subsection{Methods return early and often} -Nesting makes code harder to read. +A nesting usually makes code harder to read. \begin{codelisting} - (BOOL)loginUser:(NSString *)user withPassword:(NSString *)password { if (user.length >= 6) { if ((password.length >= 8) { - // actual logging code + // the actual logging code } } return NO; } \end{codelisting} -Getting invalid cases out of he way first will keep the working code with one level of indentation, and ensure that all parameters are valid. This paradigm is called The Golden Path. +Getting invalid cases out of the way first will keep the working code with one level of indentation, and ensure that all parameters are valid. This paradigm is called The Golden Path. \begin{codelisting} - (BOOL)loginUser:(NSString *)user withPassword:(NSString *)password @@ -353,7 +353,7 @@ Getting invalid cases out of he way first will keep the working code with one le } \end{codelisting} -This approach has one more advantage, it is easier to add error handling later on. +This approach has one more advantage, it is easier to add an error handling later on. \begin{codelisting} - (BOOL)loginUser:(NSString *)user withPassword:(NSString *)password error:(NSError **)error @@ -378,9 +378,9 @@ This approach has one more advantage, it is easier to add error handling later o } \end{codelisting} -\subsection{Method is not bisected with conditionals.} +\subsection{Methods are not bisected with conditionals} -Following method structure is not acceptable. +The following method structure is not acceptable. \begin{codelisting} - (void)method @@ -394,7 +394,7 @@ Following method structure is not acceptable. } \end{codelisting} -Bisection can be removed by returning in the if statement. +Bisection can be removed by returning within an if statement. \begin{codelisting} - (void)method @@ -427,9 +427,9 @@ In one case bisection is allowed. \section{General rules} -\subsection{Header file is imported only if necessary} +\subsection{Header files are imported only if necessary} -Importing a header files is allowed: +Importing a header file is allowed: \begin{itemize} \item if class needs to conform to a protocol (header with protocol declaration) @@ -437,12 +437,12 @@ Importing a header files is allowed: \item if class uses enums in its interface (header with enums declarations) \end{itemize} -In any other cases forward declaration should be applied. +In any other case a forward declaration should be applied. -\subsection{Delegate method always passes the sender} +\subsection{Delegate methods always pass the sender} -Delegation method passes sender as first parameter. It is a good practice to use will/did paradigm. +A delegation method passes the sender as the first parameter. It is a good practice to use will/did paradigm. \begin{codelisting} - (NSInteger)exampleClassNumberOfActions:(ExampleClass *)exampleClass @@ -462,9 +462,9 @@ Delegation method passes sender as first parameter. It is a good practice to use %\end{codelisting} -\subsection{Init method takes only mandatory parameters} +\subsection{Init methods take only mandatory parameters} -All settings required to proper initialization are passed as initializer parameters. They are accessible later through readonly properties. +All settings required to a proper initialization are passed as initializer's parameters. They are later accessible through readonly properties. \begin{codelisting} @property (strong, nonatomic, readonly) DownloaderMode downloaderMode; @@ -498,9 +498,9 @@ Instance subclasses may be in an inconsistent state during init and dealloc meth \end{codelisting} -\subsection{Abstract class can be faked with assertion} +\subsection{Abstract classes can be faked with assertion} -Creating instances of abstract classes can be thwarted with following assertion. +Creating instances of an abstract class is foiled by the following assertion. \begin{codelisting} - (id)init @@ -515,9 +515,9 @@ Creating instances of abstract classes can be thwarted with following assertion. \end{codelisting} -\subsection{Abstract method raises exception} +\subsection{Abstract methods raise exceptions} -Forcing subclass to provide implementation of a method is accomplished by raising exception. +Forcing a subclass to provide an implementation of a method is accomplished by raising an exception in superclass method. \begin{codelisting} - (void)abstractMethod @@ -528,9 +528,9 @@ Forcing subclass to provide implementation of a method is accomplished by raisin \end{codelisting} -\subsection{Enumeration type contains invalid value} +\subsection{Enumeration types contain invalid value} -Enumeration type equal to zero is considered as invalid. It protects instance variables from being initialized with meaningful value. +The enumeration type equal to zero is considered as invalid. It protects instance variables from being initialized with a meaningful value when not intended. \begin{codelisting} typedef NS_ENUM(NSInteger, Enumeration) { @@ -567,7 +567,7 @@ else \subsection{The highest level of abstraction is used by default} -Lower levels are used only when more control is needed. For example, instead using GCD: +Lower levels are used only when more control is required. For example, instead using GCD: \begin{codelisting} dispatch_sync(dispatch_get_main_queue(), ^{ @@ -575,7 +575,7 @@ dispatch_sync(dispatch_get_main_queue(), ^{ } \end{codelisting} -Use operation queue. +Use an operation queue. \begin{codelisting} [[NSOperationQueue mainQueue] addOperationWithBlock:^{ @@ -584,10 +584,10 @@ Use operation queue. \end{codelisting} -\subsection{Exception is not used to control flow} +\subsection{Exceptions are not used to control flow} -The general pattern is that exceptions are reserved for programming or unexpected runtime errors such as out-of-bounds collection access, attempts to mutate immutable objects, sending an invalid message, and losing the connection to the window server. The program catching such an exception should quit soon afterwards. Exceptions must not be used to control flow in favor of NSError objects. -When developing a class or a framework exceptions are thrown to indicate that class or framework is being misused: +The general pattern is that exceptions are reserved for programming or unexpected runtime errors, such as out-of-bounds collection access, attempts to mutate immutable objects, sending an invalid message, or losing the connection to the window server. A program catching such exception should quit soon afterwards. Exceptions must not be used to control flow in favor of NSError objects. +When developing a class or a framework exceptions are thrown to indicate that class or framework are being misused: \begin{codelisting} - (void)abstractMethod @@ -600,7 +600,7 @@ When developing a class or a framework exceptions are thrown to indicate that cl \subsection{Lazy loading reduces memory footprint} -Creating object on demand reduces initialization time of containing class. +Creating an object on demand reduces initialization time of containing class. \begin{codelisting} - (NSMutableDictionary *)cacheDictionary @@ -613,9 +613,9 @@ Creating object on demand reduces initialization time of containing class. \end{codelisting} -\subsection{Object does not register other objects as observers} +\subsection{No object register other objects as observers} -Object registers itself as an observer. +Object registers only itself as an observer. \begin{codelisting} [obj addObserver:self forKeyPath:@"isExecuting" options:NSKeyValueObservingOptionNew context:NULL]; @@ -628,28 +628,28 @@ Unregistering follows the same rule. \end{codelisting} -\subsection{Method does not return NSError object} +\subsection{Methods do not return NSError object} -Success or failure is indicated by the return value of the method: nil or NO. +A failure is indicated by nil or NO returned by a method. Success similarly by YES or not-nil pointer. \begin{codelisting} - (id)initWithContentsOfURL:(NSURL *)aURL; - (BOOL)writeToURL:(NSURL *)aURL atomically:(BOOL)atomically; \end{codelisting} -NSError object is used only for providing additional information about the failure. +NSError object is used only for providing additional information about a failure. \begin{codelisting} - (id)initWithContentsOfURL:(NSURL *)aURL options:(NSDataReadingOptions)mask error:(NSError **)errorPtr; - (BOOL)writeToURL:(NSURL *)aURL options:(NSDataWritingOptions)mask error:(NSError **)errorPtr \end{codelisting} -Therefore you should always check that the return value is nil or NO before attempting to do anything with the NSError object. Similarly you ought to check error domain before checking error code. +Therefore you should always check if the return value is nil or NO before attempting to do anything with an NSError object. Moreover, you ought to check the error domain before examining the error code. -\subsection{Custom error belongs to error domain} +\subsection{Custom errors belong to error domains} -Custom errors have error domain and error code defined. +A custom error have both the error domain and error code defined. \begin{codelisting} extern NSString *const MyErrorDomain; @@ -662,7 +662,7 @@ typedef NS_ENUM(NSInteger, MyErrorCode) { }; \end{codelisting} -Both parameters and localized description are used upon error initialization. +Both parameters including localized description are used during error initialization. \begin{codelisting} if (error != NULL) { @@ -682,13 +682,12 @@ if (error != NULL) { userInfo:@{NSLocalizedDescriptionKey: @"Unknown error"}]; } } - \end{codelisting} -\subsection{Property in category is realized by associated object} +\subsection{Properties can be added to existing classes} -New property is added to existing class by using associated objects. Please pay attention to the way the key is defined. +A property is added to an existing class by using associated objects. Please pay attention to the way the key is defined. \begin{codelisting} static void * const navigationItemKey = (void *)&navigationItemKey; @@ -724,7 +723,7 @@ To avoid priority inversion problems with Grand Central Dispatch use default que \subsection{Multiple readers one writer} -Concurrent isolation queue is used to synchronize access to a property. +A concurrent isolation queue is used to synchronize access to a property. \begin{codelisting} NSString * queueLabel = [NSString stringWithFormat:@"%@.isolation.%p", [self class], self]; @@ -755,7 +754,7 @@ Dispatch barrier async runs the block after all previously scheduled blocks are \subsection{NSOperation can be cancelled before it begins execution} -Main method checks if operation is cancelled at the very beginning and interrupts execution if condition is true. +The main method checks if an operation is cancelled at the very beginning, and interrupts execution if condition is true. \begin{codelisting} - (void)main @@ -771,7 +770,7 @@ Main method checks if operation is cancelled at the very beginning and interrupt \subsection{View is usually initialized in two ways} -By calling initWithFrame, or initWithCoder method when it is unarchived form nib file. Both situations are covered. +Either by calling initWithFrame, or initWithCoder method when it is unarchived form a nib file. Both situations are covered. \begin{codelisting} @interface ExampleView () @@ -818,13 +817,13 @@ By calling initWithFrame, or initWithCoder method when it is unarchived form nib } \end{codelisting} -Note that we do not implement -encodeWithCoder: method. UIViews and UIViewControllers does not follow normal serialization process, their state is persisted in model. +Note that we do not implement -encodeWithCoder: method. UIViews and UIViewControllers does not follow normal serialization process, their state is persisted in a model. -\subsection{Interface of generic view} +\subsection{The interface of generic view} -View exposes minimal set of properties and methods that are required for its configuration. -Property is not backed up by instance variable, but by view's or subview's property, if possible. +The view exposes a minimal set of properties and methods that are required for its configuration. +If possible, a property is not backed up by an instance variable, but rather by view's or subview's property. \begin{codelisting} - (NSString *)name @@ -838,7 +837,7 @@ Property is not backed up by instance variable, but by view's or subview's prope } \end{codelisting} -View is independent of model. Mapping between view's and model's properties is kept in a category on that view. This way view controller is kept cleaner. +The view is independent of a model. A mapping between view's and model's properties is kept in a category on that view. This way a view controller is kept cleaner. \begin{codelisting} @implementation UITableViewCell (Person) @@ -851,9 +850,9 @@ View is independent of model. Mapping between view's and model's properties is k \end{codelisting} -\subsection{Interface of specific view} +\subsection{The interface of specific view} -Specific view is tightly coupled with model. It exposes one method that takes a model object and configures the view. +The specific view is tightly coupled with model. It exposes one method that takes a model object and configures the view. \begin{codelisting} @interface PersonTableViewCell : UITableViewCell @@ -868,7 +867,7 @@ Specific view is tightly coupled with model. It exposes one method that takes a \subsection{Properties affecting user interface} -It is a common practise to have properties on view controller that influence its view. Putting view adjusting code in the setter is not enough, as view may be not loaded. After it is loaded, view controller should adjust it according to the property. In result it is convenient to create a separate method for adjusting the view as it will be called from the setter and -viewDidLoad as well. +It is a common practice to have properties on view controller that influence its view. Putting view adjusting code in the setter is not enough, as view may be not loaded. After it is loaded, view controller should adjust it according to the property. In result it is convenient to create a separate method for adjusting the view as it will be called from the setter and -viewDidLoad as well. \begin{codelisting} - (void)setClient:(Client *)client @@ -894,10 +893,10 @@ It is a common practise to have properties on view controller that influence its \subsection{View controller containment} -\subsubsection{Container specific item is provided by property} +\subsubsection{Container specific items are provided by a property} -If the container requires the child to have specific properties, it delivers category on UIViewController that provides an item which encapsulates all of them. +If a container requires its child to have specific properties, it delivers a category on UIViewController. The category provides an item which encapsulates all of the needed properties. \begin{codelisting} - (UINavigationItem *)navigationItem @@ -911,12 +910,12 @@ If the container requires the child to have specific properties, it delivers cat } \end{codelisting} -Whenever container needs to stay in sync with child's properties it uses Key Value Observing. +Whenever container needs to stay in sync with child's properties, it uses Key Value Observing. \subsubsection{Container is accessible from contained view controllers} -Child view controller can access the container through a property. +Child view controllers can access the container through a property. \begin{codelisting} @interface UIViewController (UINavigationControllerItem) @@ -926,7 +925,7 @@ Child view controller can access the container through a property. @end \end{codelisting} -Example getter implementation traverses view controller hierarchy and returns the closest parent view controller of the container class. +The following getter implementation traverses view controller hierarchy, and returns the closest parent view controller of the container class. \begin{codelisting} - (UINavigationController *)navigationController