Jump to content

Recommended Posts

Posted

Boas,

sou novo em programar para iOS e estou a ter problemas com algo que aparentemente é simples, mas que me tem dado algumas dores. No fundo o que eu pretendo, é que o o Xcode replique a estrutura que está presente na pasta do projecto (Finder). Ou seja, para este exemplo pretendo criar uma pasta "viewcontrollers" para colocar lá o ficheiro "viewController.swift", e uma pasta "views" para colocar lá o ficheiro "Main.storyboard". 

vídeo com o problema:

https://www.youtube.com/embed/q18sz7DC0sc?feature=oembed

Posted

Recomendo que faças isso com grupos em vez de referências para pastas. No entanto se quiseres usar referências para pastas, primeiro crias as pastas no Finder depois adicionas a pasta ao XCode com a opção "Add Files To ..." (botão direito em cima do item onde queres que os ficheiros fiquem) e escolhes a pasta (apenas) que queres adicionar. Desmarca a opção para criar grupos e a opção para criar cópias (vais mover os ficheiros depois). Com as pastas adicionadas ao XCode, arrasta o ficheiro que queres para a referência da pasta (pode ser no XCode ou no Finder), a partir deste momento quaisquer alterações no Finder serão refletidas no XCode.

Vais perder a capacidade de referenciar recursos apenas com o nome, tens de indicar o caminho completo (a partir da raiz do projeto), com todas as pastas, para todos os recursos que queres usar.

Em alternativa podes usar grupos que são apenas lógicos (só existem no XCode) e configurar os grupos de acordo com a estrutura de pastas que tens, se necessário. Ao criares um novo ficheiro de código, navegas até à pasta onde pretendes criar o ficheiro e o XCode cria uma referência automaticamente. Assim podes ter uma organização para a pasta do projeto e outra visível no XCode.

Eu só costumo criar uma pasta "Source" onde coloco todo o código. Não crio referências nem grupos para esta pasta, cada vez que adiciono um ficheiro de código escolho esta pasta e coloco depois o ficheiro no grupo lógico que me interessa. Acho as desvantagens das referências para pastas mais complicadas e raramente (mesmo nunca 🙂 ) tenho de editar ficheiros fora do XCode, mesmo as imagens vão para o asset bundle por isso não há outros ficheiros a gerir.

Posted

Antes de mais obrigado pela ajuda,

de qualquer forma, tentei da forma como descreves-te e continuo com o mesmo problema (se selecionar "addFiles" nem pergunta se quero criar grupo ou referencia a  pastas, por defeito assume a opção referencia a pastas. Basta mover um dos ficheiros que tenho logo problemas.

Acho que vou optar por usar os grupos, só queria mesmo fazer desta maneira porque estou a seguir um livro e queria que ficasse igual...

Posted

Se está a assumir opções é porque não as desactivaste, confirma se não tens um botão "Options" no canto inferior esquerdo que podes expandir para revelar mais opções... ou então não percebi o problema.

Posted

o que eu queria dizer é que quando seleciono a opção "addFiles", não aparece este ecrã. Quanto à tua pergunta não encontro nenhum botao "options" no canto inferior esquerdo...

http://12572-presscdn-0-99.pagely.netdna-cdn.com/wp-content/uploads/2015/12/AddingFolder.jpg

Posted

Muito obrigado pela ajuda e desculpa o trabalho...

segui o teu exemplo e assim funciona na boa. Para ficar mesmo como pretendia era no project navigator em vez de estar em grupos (pastas amarelas), estar como referencia a pastas (pastas azuis). Infelizmente sempre que tento fazer por referência a pastas, ao clicar na seta (viewcontroller) no Main.storyboard, não sou direcionado para o ficheiro viewcontroller.swift e se clicar no assistant editor também não aparece nada. Quanto ao ficheiro Main.storyboard, que também movi para uma subpasta, com a opção grupos funciona, já com referência a pastas no Main Interface nem sequer é reconhecido.

P.S.: os alerta a indicar que os ficheiros estão em falta já não aparece, penso que seja por ter feito uncheck ao source control, na altura de criar o projecto.

De qualquer maneira a forma como indicaste funciona e sempre dá para ter uma estrutura igual tanto no xcode como no Finder.

Posted

Já consegui resolver o problema para o ficheiro "viewcontroller.swift". 

Basicamente, o que fiz foi criar um grupo já com o ficheiro adicionado como no teu exemplo. Depois para passar para "azul" (referenciar pasta) o que fiz foi:

1. selecionei o grupo "viewcontrollers" (pasta amarela) e fui até à tab "File Inspector" e no ícone com forma de pasta, onde diz "none", indiquei a pasta onde o ficheiro está no sistema (no meu caso, viewcontrollers/viewcontroller.swift")

2. Eliminei o ficheiro que ficou a vermelho

3. importei a pasta "viewcontrollers" e apaguei o grupo

Desta forma não tenho problemas e consigo aceder ao viewcontroller através do main.storyboard e também já abre o editor assistant.

O único problema que estou a ter agora é com o ficheiro Main.storyboard, se fizer o mesmo processo o ficheiro não aparece na Main Interface, e a conexão com o viewcontroller deixa de existir...

Captura_de_ecr_2016_10_19_s_23_47_13.png

Posted (edited)

Quero só deixar aqui o meu obrigado ao Knitter pela disponibilidade em querer ajudar, 5*!!

Deixo aqui um print do resultado que pretendia alcançar, ou seja, o project navigator a referenciar as pastas e não os grupos. Para além disso, já consigo arrastar elementos para o viewcontroller

Basicamente o que fiz, expliquei na publicação anterior, a única diferença foi ter alterado primeiro o ficheiro Main.storyboard e só depois o ficheiro viewController.swift.

Captura_de_ecr_2016_10_20_s_00_12_22.png

[Quase RESOLVIDO]

Edited by mgreen
Posted

Não consigo trabalhar com referências para pastas, além de ser mais trabalho estar a indicar o caminho para o ficheiro em vez de usar só o nome, não me entendo com a forma como é feita a referência, prefiro os grupos 🙂

Posted

Falei antes do tempo 😞

Testei com uma label e o ecrã fica branco, pelos vistos o Main não é reconhecido. Tens uma solução?

P.S.: tirando este problema está tudo perfeito!!!

Captura_de_ecr_2016_10_20_s_00_53_10.png

Captura_de_ecr_2016_10_20_s_00_53_26.png

Posted

A maioria das opções não espera que estejas a usar referências para pastas, além de não ser nada normal colocar o storyboard principal numa sub-pasta e depois usá-lo com a interface (neste caso é comum é ser carregado manualmente). Nessa opção terás de indicar à mão o caminho para o storyboard, apenas a partir da raiz do projeto.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.