Estendendo o Modelo de Utilidade
-
03-07-2019 - |
Pergunta
Estendendo o Modelo de Utilidade
Eu estou trabalhando com o modelo Xcode Utility (Mainside / Flipside) e eu preciso adicionar uma nova tela. Eu adicionei:
docView.xib (copy of FlipsideView.xib)
docView.m
docView.h
docViewController.m
docViewController.h
Em rootViewController.h acrescentei:
UINavigationBar *docNavigationBar;
docViewController *docViewController;
@property (nonatomic, retain) UINavigationBar *docNavigationBar;
@property (nonatomic, retain) docViewController *docViewController;
Em rootViewController.m, eu sintetizado as adições:
@synthesize docNavigationBar;
@synthesize docViewController;
Eu faço importar meu .h em rootViewController.m:
#import "docViewController.h"
Quando tento compilar eu erro com:
RootViewController.m:22: error: syntax error before 'docViewController'
Advertências:
RootViewController.m:160: warning: property 'docViewController' requires method '-docViewController' to be defined - use @synthesize, @dynamic or provide a method implementation
RootViewController.m: 160: aviso: propriedade 'docViewController' requer o método 'setDocViewController:' a ser definido - uso @synthesize, @dynamic ou fornecer uma implementação do método
O que eu perdi?
Solução
Na verdade, acho que ele queria ter colocado docViewController (é novo controlador de vista, certo?). Em qualquer caso, se é isso que você quis dizer, e não FlipsideViewController como Eric diz, então o problema é que você é chamado o mesmo que a propriedade. Péssima ideia. Normal convenção Objective-C é para maiúsculas a primeira letra de seus nomes de classe, então minúsculas-los quando você usá-los como propriedades, etc.
docViewController *docViewController;
deve ser:
DocViewController *docViewController;
Ela vai trabalhar muito melhor dessa forma:)
Outras dicas
Em rootViewController.h, parece que a sua linha de declaração:
docViewController *docViewController;
Deve ser:
FlipsideViewController *docViewController