2012-08-15 14 views
11

Estoy siguiendo el tutorial de Facebook para publicar en el muro de un usuario: http://developers.facebook.com/docs/howtos/publish-to-feed-ios-sdk/ y aunque está hecho con un proyecto .xib en mente, he podido hacer todo muy bien con mi proyecto de guion gráfico hasta el momento. Sin embargo, he llegado al punto en que necesito poner algún código en el método initWithNibName: bundle: pero no puedo hacerlo porque estoy usando el guión gráfico. Y, como es difícil saber cuándo se llamará exactamente el método, no puedo simplemente escribir un método llamado initWithNibName: bundle: y llamarlo desde algún otro método. Si alguien tiene alguna idea de cómo resolver mi problema, dígalo. Gracias.Método initWithNibName en el guión gráfico

+0

Creé un proyecto simple en GitHub como ejemplo usando FB SDK + iOS 6 y Storyboards. La aplicación puede publicar en la línea de tiempo: [FB SDK + Guiones gráficos con Publish to Feed] (https://github.com/Belzebul/fb-sdk-storyboards) Espero que esto pueda ser útil. –

Respuesta

39

Acabo de toparme con este problema yo mismo. Los guiones gráficos parecen no utilizar initWithNibName:bundle:, pero tampoco initWithCoder:(NSCoder *)aDecoder o initWithStyle:(UITableViewStyle)style.

Las implementaciones por defecto de los dos métodos se parecen:

- (id)initWithCoder:(NSCoder *)aDecoder 
{ 
    self = [super initWithCoder:aDecoder]; 
    if (self) { 
     // Custom initialization 
    } 
    return self; 
} 

- (id)initWithStyle:(UITableViewStyle)style 
{ 
    self = [super initWithStyle:style]; 
    if (self) { 
     // Custom initialization 
    } 
    return self; 
} 

todavía tengo que usar la versión initWithStyle mí mismo, pero me imagino que se llama para un UITableViewController. Si tiene dudas, simplemente puede agregar ambos métodos al archivo, junto con una llamada NSLog() que imprime el nombre del método (o cualquier otra cadena única). Luego puede ejecutarlo en el simulador para ver cuál se llama y eliminar el otro.

Recomiendo enfáticamente no llamar al initWithNibName:bundle: de cualquiera de los otros init métodos. Mejor mover el código al método correcto.

+0

algunos de los mejores consejos que he visto – finneycanhelp

+2

Si el guión gráfico no está utilizando initWithNib, ¿por qué se crea de manera predeterminada al agregar una nueva clase usando xcode 4.5 y el guión gráfico? – Dejell

+7

@Odelya No estoy seguro de cuál es el problema con eso (definitivamente es bastante confuso). Parece como un descuido al menos para dejarlos fuera de la plantilla predeterminada (especialmente porque se recomienda el uso de Storyboards). No he encontrado ninguna explicación oficial para eso, aunque la documentación de Apple para 'initWithNibName: bundle:' dice que el método 'initWithCoder:' se utiliza en su lugar cuando se trata de Storyboards. http://developer.apple.com/library/ios/#documentation/uikit/reference/UIViewController_Class/Reference/Reference.html#//apple_ref/occ/instm/UIViewController/initWithNibName:bundle: – Kitsune

Cuestiones relacionadas