objective-c xcode code-snippets xcode4

objective c - Breves y útiles fragmentos de Objective-C?



xcode code-snippets (9)

Desde XCode 4, ahora hay una sección de fragmentos de código que ofrece los fragmentos a través de autocompletar al escribir. Estaría muy interesado en fragmentos que todos ustedes hayan almacenado allí. ¿Qué fragmentos te ahorran más tiempo (y por qué)?

Solo publique fragmentos reales (lo que significa que no hay snarky "no es necesario que no haya fragmentos malolientes", y no "i love snippets que hacen <XYZ>"), y solo fragmentos que son cortos y dulces (es decir, no más de ~ 20 líneas como máximo...). Si un fragmento no es obviamente útil, también explica por qué crees que lo es. ;)


A menudo agrego interfaces de clase privadas con extensiones de clase:

@interface <#ClassName#> () @end

Esto es para mantener la interfaz pública completamente libre de cosas internas, especialmente ahora que podemos tener propiedades puramente sintetizadas ( gist de ejemplo ).


Aquí están mis dos fragmentos de comentarios. Los uso mucho.

Comentario de cabecera:

// ---------------------------------------------------------------------------------------------------------------- # pragma mark - # pragma mark <#comment#> # pragma mark - // ----------------------------------------------------------------------------------------------------------------

Sub comentario:

// ---------------------------------------------------------------------------------------------------------------- // <#comment#> // ----------------------------------------------------------------------------------------------------------------


Bloque de despacho en la cola actual después de un número dado de segundos:

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, <#seconds#>*1e9), dispatch_get_current_queue(), <#block#>);



Mientras que la depuración de este fragmento es realmente útil. Le permite saber el nombre de la clase, el nombre de la función y también puede agregar sus comentarios.

NSLog(@"%s [Line %d] %@ ", __PRETTY_FUNCTION__, __LINE__,<#comment#>);


No parece haber una categoría de clase entre los fragmentos de fábrica:

@interface <#ClassName#> (<#CategoryName#>) @end


No si esto cuenta pero siempre uso este fragmento cada vez que agrego un UITableView en cualquiera de mis controladores de vista.

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *cellIdentifier = @"Cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier]; if(cell == nil) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellIdentifier]; // Do something here...................... } // Do something here too ......................... return cell; } - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return ; } - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { return ; }

es bastante útil si no está utilizando un UITableViewController para mostrar el contenido de la tabla.


También tengo los métodos de ciclo de vida de vista estándar en mis fragmentos (que se utilizan a diario):

Yo uso el atajo de teclado v w a para

- (void) viewWillAppear:(BOOL)animated { [super viewWillAppear: animated]; }

v d l para viewDidLoad etc.