>> RHED SHI: Benvido ao vexa seminario CS50 -
Introdución ao iOS.
Grazas a todos por teren benvida.
Espero que estea tan animado como eu son sobre o IOS.
O ano pasado, eu levei CS50 como un estudante de segundo ano, e eu basicamente aprendín IOS para o meu
proxecto final.
E foi moi -
ben, non foi fácil, pero hai moitos tutoriais de apoio en liña.
E eu realmente espero que con este seminario, eu vou dar a vostedes unha cabeza
iniciar o desenvolvemento IOS
>> Entón, en termos de desenvolvemento IOS, hai dúas cousas principais que nós
quere cubrir hoxe.
En primeiro lugar, a lingua -
a linguaxe vai ser en Objective-C. Nós, en realidade, vai escoitar
algo realmente emocionante.
Así, pode xuntarse a mazá enteira comunidade de desenvolvedores e construír uns
aplicacións realmente impresionantes.
>> Ademais, o IOS 7 é fermoso, espero, para algúns de vós.
Pero é controvertido, xa o sei.
E, sobre todo, o que quero facer é guía a través de Objective-C, e tamén
Xcode, que é o integrado ambiente de desenvolvemento que vai ser
traballar en para IOS.
>> E así, só unha palabra en Objective-C. Basicamente, é exactamente o mesmo que C,
pero con unha morea de outras cousas.
E así, máis estrictamente, é realmente un de C. definirse super Entón, calquera cousa que
pode facer en C agora, o que se basicamente como pset de 0 a 6, vostede
pode facer en Objective-C.
>> Así, non sente medo sobre esta nova linguaxe que vai aprender.
Xa Cubrimos unha morea de que, porque todo feito C pasado
semestre, só que agora vai ter moito máis para traballar.
E eu só vou leva-lo a través dun par de exemplos para destacar algúns
das principais diferenzas que eu atope foron cando realmente importante que eu aprendín
Objective-C no ano pasado.
>> Ben, en realidade, polo que o outro punto é, Objective-C é, obviamente,
orientada a obxectos.
E nós imos discutir un pouco sobre o que significa isto máis tarde.
Basicamente, é como como traballou con structs neste pset pasado, con
nós e outros similares cousas así.
Excepto, en Objective-C, todo é un obxecto, e vai ser
pasando arredor de punteiros para obxectos en vez dos propios valores.
Entón, é só algo importante para manter presente.
>> Entón, por que non comezan con algúns diferenzas de sintaxe entre C e
Objective-C?
Quero destacar o # include, vostede sabe, io.h estándar en C e C + +, co
a versión Objective-C de que, o que é # importación, e despois de algún tipo de
ficheiro de cabeceira.
Neste caso, sería UIKit, vostede sabe, reducir UIKit.h.
Tamén podería ser, xa sabe, MKMapView para cortar MKMapview.h se quere
facer, como, un mapa dentro da súa aplicación.
Cousas semellantes así.
>> Entón, o importante é incluír agora trasladouse a importar.
Pero a idea aínda permanece.
Vai ser a importación de calquera tipo de ficheiro de cabeceira no seu programa.
>> Tamén quero destacar a diferenza entre printf e NSLog.
Con todo, como dixemos anteriormente, Objective-C é un super-rigoroso conxunto de
C, o que significa que hai printf en Objective-C, tamén.
Pero a maioría da xente non usan iso.
A maioría das persoas usan este NSLog porque dálle un selo de tempo, e xa veremos
Lo en acción máis tarde.
Pero é, xeralmente, un máis útil forma de imprimir variables.
>> E eu tamén quero destacar que NSLog leva exactamente do mesmo
valores de espazo reservado como printf fai -
así% d é para un int, % F é para un float.
Con todo, quero destacar esta última un -
NSLog% arroba -
que é un espazo reservado para un obxecto.
E, como dixen anteriormente, trátase Objective-C moi bonito sobre todo en obxectos,
e por iso este vai entrar en uso cando desexa imprimir, quizais, quizais unha
NSArray ou NSDictionary, ou un NSString.
>> Así, tamén, ter en conta que, na nosa NSLog declaración, temos unha arroba diante
da cita -
que é para significar que as cordas, agora, en Objective-C son obxectos.
Eles non son máis estrelas simplemente de caracteres.
Son obxectos e son tratado como tal.
>> Entón, é moi importante que, cando usa NSLog que leva nun NS
corda, o que significa que terá para incluír un no na fronte do seu
comiñas.
E é por iso que ve, aquí, en todas as miña función chama a este NSLog, eu
ter un no diante das citas, aínda aínda que a% d e% f de son
todo o mesmo dende C.
>> Todas as preguntas ata agora?
Vou tentar pasar por iso rapidamente, de xeito que poidamos ter máis tempo para traballar
con Xcode e Objective-C, de xeito que vostedes poden obter máis
familiarizado con el.
>> Logo quero destacar algo conceptualmente importante.
Así, en C, a maioría das cousas son funcións.
Facemos unha chamada de función.
Declaramos funcións deste xeito, con o tipo de retorno primeiro, despois o
nome da función, entre parénteses, e despois calquera que sexan os argumentos, o tipo de
estes argumentos que queremos pasar dentro
E Objective-C, porque todo é un obxecto ou clase -
así clase e obxecto son dous termos que son principalmente sinónimo uns cos outros,
para que eu poida empregar los alternativamente durante todo o seminario.
>> Pero vai ver que temos métodos en Objective-C, en vez de funcións.
E métodos pertencen aos obxectos.
Polo tanto, así como, se cadra tomar por exemplo, o no -
noso tipo de [inaudível]
nó de pset 6 ou 5 -
temos a palabra, a propiedade, ou o próximo punteiro nodo.
Os métodos son simplemente funcións dentro dalgún tipo de estrutura.
>> Así, neste caso, a estrutura sería o obxecto e, a continuación, o método é
algo que pertence a un obxecto.
E é así que ten que declarar, máis ou menos, un método.
Podería comezar con, unha vez máis, o regreso tipo - entón, eu tente cor
codificar as palabras clave aquí para que vostedes Pode ver, polo menos, o formato
semellanzas entre a función declaracións e declaracións de método.
Entón, comeza con, vostede sabe, un retorno tipo - neste caso, é unha matriz ou
un punteiro NSArray -
e entón ten este método.
E entón, o que é interesante aquí é que, no canto de ter parénteses, nós
ten eses dous puntos.
E entón, diante dos nosos argumentos, nós poñer, de novo, entre parénteses o tipo
do noso argumento.
>> Entón, agora eu estou tentando facer o comparación entre, xa sabe, e n
número, porque son ambos enteiros semellantes.
E entón, o outro é un tipo NSUInteger.
E entón, con Objective-C, cando quero ter varios argumentos en
súa cláusula método, vostede, dalgún xeito, separa-los máis ou menos como este -
Eu non estou seguro de como describilo, pero este é un bo exemplo de como
pode ter varios argumentos alí.
>> Pode, por suposto, só totalmente ignorar o colon andArray NSArray
disposición se quere só un método que ten en un argumento.
Si, pregunta.
>> Audiencia: San ambos NSUInteger e NSArray argumentos que poden ser tomadas en
dentro do NSArray?
>> RHED SHI: si.
Entón, deixe-me explicar.
Entón, si.
Así, a pregunta era se NSUInteger e NSArray * tipos dos argumentos,
e iso é correcto.
Entón, quere especificar o que o tipo do seu argumento é.
E aquí, eu estou tratando de presenta-lo a algunhas das sintaxe e vocabulario de
Objective-C, de forma que estes son tipos reais que estará lidando.
>> E como vai notar, matrices xa non son, de certa forma,
cousas do soporte simple.
Son obxectos.
Aínda que, se somos á seguinte foto, podemos ver o que pudermos
codificar un NSArray en Objective-C con simplemente un símbolo diante de
os corchetes.
Eu non son, en realidade, a certeza se Eu sintaticamente codificado unha matriz
correctamente para a versión C, pero iso é debería estar nunha matriz C.
>> Entón, iso é como, vostede sabe, quizais usar as funcións ou
métodos que creamos anteriormente.
Non?
Entón, este é o lugar onde nós declaramos noso función e o noso método.
E agora queremos usalos o noso programa, e este é
como poderiamos facelo.
Así, en C, que tería que, xa sabe, quizais, un bool b, e configuralo para
igual a función, e despois pasa nos argumentos.
>> En Objective-C, que é moi case o mesmo.
Ten NSArray * my_array, e é será igual - agora, o único
diferenza aquí é esa cousa de obxecto, que eu xa destacada en amarelo, e
como se pode ver, en C, non hai ningunha outra palabra amarelo.
E é porque os métodos pertencen cun certo obxecto.
Entón é por iso que eu preciso ter un obxecto que, dalgún xeito, chama ese método en
o número cero, e logo NSArray a, b, c, d.
Calquera dúbida sobre iso?
>> Imos ver eses conceptos en acción logo cando entramos nunha demo.
Aceptar.
Agora, quero falar un pouco brevemente sobre Xcode 5, que é o
contorno de desenvolvemento integrado que estará a traballar.
Sei que moitos de vostedes, ou algúns de vós, non teñen Macs, que é un problema
Xcode porque non está dispoñible para Windows e PC.
Non me pregunta por que, pero probablemente -
si, corporativo.
É igual.
Pero de calquera xeito, polo que pido desculpas se algúns dos ten que baixar algún tipo de
máquina virtual para Mac en Para realizar o Xcode 5.
Pero é un moi bacana software para o seu uso.
>> E así, antes de mergullo en calquera tipo de demostración, eu só quero te amosar unha
imaxe do que Xcode parece na súa ventá e tamén falar de
o que este espazo todo é.
Entón, é máis ou menos como aprender a usar Microsoft Word, agás que quere
familiarizarse con toda cousas distintas que
están a ocorrer aquí.
>> Entón, primeiro, quero que apunte para a barra de ferramentas na parte superior.
Verá que, na parte superior, vai ter o nome do ficheiro -
ou, en realidade, o nome do proxecto e, a continuación, o nome do ficheiro.
Tomé nota do xogo e os botóns de parada.
Eses son os que vai ser usar para executar a aplicación en
simulador -
o simulador iOS.
Isto vén automaticamente co Xcode 5, así que non se preocupe
descarga de algún tipo de simulador.
Só aperta o play e a continuación, el executa a súa aplicación.
E pode xogar con vostede, e vai ver como funciona máis tarde.
>> E entón, no centro, por suposto, é onde todo o seu código bonito é
indo.
E entón, no lado da man esquerda, ten iso, dalgún xeito, cartafol -
navegación -
e logo, tamén vai ver que, xunto coa icona do cartafol, hai unha
banda de outros iconas alí que será útil máis tarde.
>> E entón, no lado dereito é unha utilidade zona onde se pode traballar con
algúns dos obxectos e indicar, vostede sabe, o que a cor debe ser, o que
a fonte do texto debe ser, etcétera.
A pesar de todo o que fai na área de utilidade, pode
facer en código tamén.
E así, eu vou estar pasando por dous exemplos de como usar, simplemente, ningún código de
todos - ou código moi mínima -
versos todo o código, só para que vostedes saber o que pode e non pode facer en
Xcode e Objective-C.
>> E entón, finalmente, abaixo, na parte inferior, ten a área de depuración.
Así, non necesita máis executar GDB, etcétera, en seus programas.
El fai iso automaticamente para ti.
E tamén se pode imprimir material para esta área.
Entón, en realidade, máis tarde, nós imos pasar por mario.c, se vostedes aínda se lembran
que, o Xcode.
Entón iso debe ser divertido.
>> E, a continuación, só para trae-lo de volta para Objective-C, quero destacar o que
podes facer con se declaracións.
Entón, vostede sabe, porque Objective-C é un super xogo de C, o único que fai é,
literalmente, o mesmo que C. Só ten pequenas diferenzas.
Entón, vai notar a forma dun se afirmación aínda é o mesmo - ten
se, e así que ten parénteses con unha condición dentro, ela e, a continuación,
claves para todo o que quere facer alí dentro.
>> Con todo, eu quería poñer este slide-up aquí, simplemente para ilustrar que,
porque estamos lidando con obxectos, agora, imos ter que usar esas cousas
chamado así, é igual a cadea, que é, por casualidade, un método dun
cadea ou un obxecto NSString.
Así, palabras, neste caso, é un NSString obxecto, e el ten un método chamado é
igual a corda, e entón nós estamos pasando nunha cadea codificada para ver
se estas foren iguais unha á outra.
>> Todas as preguntas ata agora?
Aceptar.
E, quero ir máis unha instrución tamén.
>> Así, por exemplo, se quixésemos facer un loop ao longo da lonxitude dunha cadea en C, este
debe ser familiar para ti.
E, en Objective-C, quero para destacar que, dalgún xeito,
método chamado conta.
Ben, en realidade, déixeme pode ter iso de volta.
Conta é un método de matriz.
Con todo, é máis especificamente un propiedade da matriz, que é porque
pode usar a notación de punto.
Pero eu non quero entrar moito de este material conceptual, eu só quero
amosar-lle como as cousas parecerían como en Objective-C contra C.
>> E tamén, quero resaltar que aínda que eu teño usado NSUInteger
diante de todos os meus eus en Objective-C, tamén pode usar int, porque é int
totalmente válida en Objective-C, tamén.
Si?
>> Audiencia: É só estilístico, ou sexa -
>> RHED SHI: Yeah.
Entón, como vai ver -
por iso, o importante é que se só unha cuestión de estilo.
Como vai ver, eu teño un, máis ou menos, estrela cousa asterisco, na parte inferior, e
ese link leva a un estourido de pila formar, en que alguén explica
a diferenza entre un int en NSInteger e un NSUInteger.
E así, pode ler sobre iso máis tarde.
Estas corredías van ser, claro, dispoñibles para ti.
>> Imos ver.
OK, impresionante.
Así, este tamén está incluído na corredías porque eu pensaba que iso era unha gran
sitio web que presenta a sintaxe Objective-C.
Entón, en realidade, por que non imos pasar Chrome e confía este sitio web?
>> Correcto.
Entón, o que quero amosar-lle caras aquí é esta foto.
Entón, iso é, de certa forma, será o que vai ver o interior de calquera
Arquivo Xcode.
En realidade, por que non pode ter un momento para, dalgún xeito, levar iso dentro
>> Así, este libro -
que é o obxecto que estamos lidando.
E entón, é, obviamente, será herdado dalgún outro obxecto, pero
non se preocupe con iso.
E, a continuación,, é, quizais, ten algunhas variables membro.
>> A cousa importante que quero amosar-lle son os métodos de instancia, aquí.
Así, os métodos de instancia indícanse por este guión.
E entón, como vai entender, estamos xa empezando a ver o paradigma
para declaración de método, non?
O tipo de retorno, o nome do método, e logo o tipo do argumento, e
a continuación, o nome do argumento.
E este signo negativo significa que é un método de exemplo, o que significa que
estes métodos só están dispoñibles para obxectos que foron instanciados.
>> Para contrastar, que métodos cun plus asinar diante deles son de clase
métodos, o que significa que pode chamar estes métodos, mesmo se non ten
un obxecto creado aínda.
Así, para un exemplo claro, NSString é unha clase.
E pode chamar, por exemplo, métodos de clase NSString -
o real, como, palabra NSString.
>> Con todo, a fin de utilizar estes métodos, o que realmente
Debe crear unha cadea.
Por exemplo, NSString corda estrela é igual a en aspa, Ola mundo.
E entón, pode utilizar estes métodos -
métodos de instancia -
sobre esa secuencia Ola mundo.
Entón, esa é a diferenza entre métodos de instancia e métodos de clase.
>> E, nós cuberto só esta parte.
Propiedades son outra cousa que son dentro de obxectos, basicamente.
E declaralo los con a palabra chave na propiedade.
Ten estas opcións, aquí, que eu vou explicar máis tarde, cando
imos a unha demo.
Si?
Oi
>> Audiencia: Vostede podería aumentar o zoom, por favor?
>> RHED SHI: Ah, si.
Sentímolo.
>> Audiencia: Grazas.
>> RHED SHI: Isto debe ser moito mellor.
>> Audiencia: Yeah.
Grazas.
>> RHED SHI: Si, por favor, lembre-me se Eu esquezo para ampliar ou diminuír o zoom.
Entón, iso é todo o que eu quería para amosar-lle a -
Guau, iso é moi -
a este sitio.
Entón, imos volver aos nosos diapositivas.
>> En realidade, agora imos dar un momento para mergullar nunha demo.
Entón, imos comezar cunha novo proxecto Xcode.
Entón, se vai abrir o Xcode en todos súas máquinas, debe levar moito
páxina onde di, como, sexa aberto un proxecto existente ou un novo
proxecto, e ten que facer clic nun novo proxecto.
E entón, debe tomar a esta pantalla.
Si?
>> Audiencia: Se non ten un Mac, nós só unha especie de relaxarse?
>> RHED SHI: Ou ollar en con alguén, si.
É.
Pode relaxarse ​​tamén.
Aceptar.
>> Entón, o que imos facer primeiro, agora, é, en realidade, nós imos facer un
aplicación única visión.
Entón, se observar, o que é óptimo sobre Xcode e soporte de Apple para
desenvolvedores é que ten unha morea de templates para traballar xa.
Podería, por exemplo, facer unha aplicación mestre-detalle.
Pode facer un xogo -
e de feito, eu non vou entrar en xogos, porque os xogos son unha historia diferente
para o desenvolvemento do IOS.
E eles están tipo de separar, polo que non vou entrar nesa.
>> Entón, ten baseado en páxina aplicacións.
Ten unha aplicación de guía -
así como, por exemplo, o Bank of America probablemente ten, así, unha aplicación con guías.
É quen onde ten os botóns na parte inferior.
E entón, ten un xogo Kit Sprite.
>> Ou pode traballar a partir de cero, o que é o que imos facer despois.
Pero imos, en primeiro lugar, comezar con unha única aplicación vista.
Entón, el vai pedir un nome de produto, e podemos só facer proba.
Nome da organización -
así, o nome da organización, identificador de empresa -
quen son importantes se está indo para poñer a súa aplicación na App Store.
Fóra iso, o seu código vai correr absolutamente ben sen iso.
>> Isto vai ser importante se quere - así, por si só, como, introduza o seu programa
para o seu teléfono ou algo así, e proba con iso, vostede sabe, na vida real -
este vai ser importante.
Isto tende a ser normalmente asociado algún tipo de conta de desenvolvedor
con Apple.
>> E así, eu sei, probablemente, moitos de vostedes Non terá ningún contas de desenvolvedores.
Sei que a universidade ten un.
Coido que CS ten un.
Pero, que me pode enviar correo-e e eu vou probar para descubrir isto para vostede.
Pero agora, eu acabo de poñer en algunhas cousas aquí de espazo reservado.
>> E pode, por suposto, aquí, escolla se quere que sexa o único en
iPhone, o iPad, ou ambos -
aplicación universal.
Así, por agora, imos facer universal, só ver ambos lados da plataforma.
>> Imos ver.
Entón, agora, eu vou gardar Lo nalgún tipo de cartafol.
Non importa onde - vostede Sempre pode movela máis tarde.
E, agora, somos levados ao noso proxecto Xcode.
Eu non me preocuparía con todo isto.
Suxiro non tocar en calquera tanto, a menos que saiba exactamente o que
está facendo.
Entón, todo isto, só ignore na súa maior parte.
Non vai ter que tocalo, e se romper algunhas cousas aquí,
está un pouco complicado.
>> Entón, por que non mirar para os ficheiros no
á esquerda na nosa navegador.
Aquí temos AppDelegate.h.
Temos AppDelegate.m Entón, como vai previo aviso, temos arquivos de cabeceira, que
rematar en punto h, e temos implantación -
En realidade, déixeme zoom in
Aceptar.
Déixeme zoom in
>> Seguro, así que ten ficheiros de cabeceira e ten ficheiros de implementación.
En realidade -
Aceptar.
Isto é un pouco raro, pero pense comigo.
Entón, por que nós escoller unha única visión aplicación, nós imos ser
traballar con storyboard.
>> Entón, storyboard é algo que Apple xurdiu coa realmente axudar
desenvolvedores rapidamente prototipo súas aplicacións.
Entón, este é o lugar onde podes crear unha aplicación sen escribir unha
soa liña de código.
Con todo, na nosa aplicación único punto de vista, nós, por suposto, ten un
ficheiro para o noso punto de vista, o que é un controlador de punto de vista.
Entón, nós temos a cabeceira eo ficheiro de implementación, aquí.
>> E, eu estou indo a afastar agora porque imos ter para traballar no storyboard.
Entón, aquí está o noso punto de vista.
Se nós, simplemente, executar a aplicación agora, non hai moi emocionante a suceder.
Así, podes ver esta pantalla branca.
OK?
>> E, na nosa área de servizos, podemos engadir unha morea de cousas distintas para el.
Entón, cando está lidando con pantallas en iOS, controladores de vista son o
obxectos que encapsulam, dalgunha forma, os seus puntos de vista.
Así, un controlador de vista sempre ten unha propiedade chamada vista.
E ese punto de vista, normalmente, contén, vostede sabe, o que
quero ver nunha pantalla.
>> Entón, así, imos comezar por poñer, quizais, quizais un marcador.
Entón, imos poñer unha etiqueta en alí -
poñelas no medio.
Entón, agora que prema na etiqueta, eu pode ir ao inspector de propiedades
e comezar a cambiar o seu valor.
Imos chamalo CS50 Colours.
>> E, eu tamén pode cambiar o tipo de letra.
Así, no canto de facer sistema, que é o estándar, podemos facer un personalizado.
Podemos cambiar -
vostede sabe, ultraleve, facelo 32.
E entón, podemos facer a nosa caixa grande.
>> Audiencia: Pensas que pode ampliar en só un pouco máis, quizais?
>> RHED SHI: Si?
Aceptar.
>> Audiencia: Só ten que tocar isto?
>> RHED SHI: Imos ver.
Será que isto funciona?
>> Audiencia: Só ten que pasar o Xcode?
>> RHED SHI: Por suposto.
Aceptar.
Incrible.
>> Audiencia: A etiqueta abaixo?
A etiqueta?
>> RHED SHI: Qué é isto?
>> Audiencia: O desplegable foi a etiqueta baixo?
>> RHED SHI: Entón, a pregunta era, o que desplegable foi a etiqueta baixo?
Débese, simplemente, estar aquí abaixo.
Creo que é unha cousa cubo.
Pero, xeralmente, ese é o estándar -
Eu só vou aquí ata eu atopar unha etiqueta.
É.
>> Entón, agora temos a nosa etiqueta.
Imos centrar-lo.
E Xcode dános directrices para centrar obxectos.
Entón, agora imos realizar o noso código novo.
>> Alí imos nós.
Entón, nós temos CS50 Colours.
E agora, imos poñer un botón alí, non?
Porque queremos facer este interactivo.
Entón, imos poñer un botón aquí.
E nós imos chamar este botón "tap aquí para continuar. "Imos centraliza-lo, tamén
De feito, xa está centrado.
É.
>> Entón, agora temos un botón.
E si correr de novo, nós imos ter un pequeno botón agradable aquí.
E podo facer clic sobre el, pero el non fai nada, porque non fixemos
nada co botón aínda.
>> Entón, imos crear un outro punto de vista, non?
Entón, imos dicir que quero tocar ese botón e quero
ir a outra páxina -
outro punto de vista.
O que vou facer é, podo crear un controlador de vista, non?
Agora eu vou facer clic no meu botón, e entón, o importante é que eu vou
click - ou -
si, control de prensa no meu teclado.
Control.
Preme o botón e arrastra.
>> Entón, lembre de manter a tecla de control.
Imos facelo de novo.
Entón, Manteña o control, fai clic e arrastra para o que quere facer.
Aceptar.
>> E agora, eu teño varias opcións aquí.
I pode empurrar, ou podo facer un modalidade, ou podo facer un costume.
Push é só se ten unha controlador de navegación.
Neste momento, a nosa primeira vista controlador non está dentro de calquera
controlador de navegación.
Así, o controlador de navegación é o que lle dá o botón Voltar do
o app IOS onde ten, xa sabe, que top, tipo, bar de espesor -
onde pode ir cara atrás, ou para adiante, etcétera.
Agora, eu non teño iso.
E así, é por iso que eu non podo facer un empurrón.
>> Entón, prema no impulso accidentalmente, aquí.
E, de feito, imos executar o código, e debe bater en min.
Só se eu premer o botón con todo, así que -
dereita.
Entón, iso é malo.
>> E, como se pode ver, aquí, nós ten a mensaxe de erro.
Entón, "segues push só se pode usar cando controlador de fonte é xestionado por un
instancia do controlador de navegación UI ". Así, xa que este non estaba dentro dun
controlador de navegación, Eu non podería facelo.
>> Entón, agora, eu vou volver ao cartafol, volvendo ao storyboard.
>> Audiencia: Cal é a navegación controlador, de novo?
>> RHED SHI: Entón, agora eu vou te amosar.
Imos ver.
Entón, eu estou indo a facer clic nesta visión controlador, e entón eu vou
ata o produto -
En realidade, non, desculpe - editor.
E eu estou indo a ir -
En realidade, se eu facer clic sobre el?
Non
Alí imos nós.
Vou subir en editor, desc para incorporar, a continuación, navegación
controlador.
>> Aceptar.
E, meu espazo de traballo parece moi confuso, entón imos limpar isto.
Entón, todo isto é storyboard.
E deste xeito -
OK, deixe -
I pode rapidamente construír algo como esta.
E entón, agora podo volver, sabe?
>> Pero iso é medio chat, non?
Entón, o que quero facer é, eu non quero de facer, simplemente, unha visión
controlador.
Digamos que eu quería realmente facer unha controlador de visualización de táboa, para que eu poida poñer en
algunhas cores agradables, na táboa.
>> Entón, agora que eu coloque na miña opinión mesa controlador, eu teño conecta-lo de volta
deste botón ao controlador de vista.
Entón, eu teño que facer o meu control, clic, arrastre cousa de novo.
E agora podo facer presión, porque incorporar dentro dun controlador de navegación.
>> Audiencia: Navegación controlador só permítelle ir dun lugar a outro?
>> RHED SHI: si.
Entón, máis tecnicamente, é un obxecto onde -
así, no interior da navegación controlador de obxecto,
mantén o control dunha matriz.
E esa matriz contén todas as posteriores ver controladores.
É por iso que cando prema para atrás, vai volver á páxina anterior.
Como o controlador de navegación obxecto, ou o código que coida de
este obxecto, ten unha matriz que mantén seguir deses controladores de visualización, e
Pode, entón, vostede sabe, dq a visión controlador e darlle de volta o
anterior.
>> Entón, iso é cousa técnica, pero -
e eu vou amosar-lle máis tarde, en código, se temos tempo.
Eu son o tipo de esgotar-se en tempo, pero -
>> Así, coa exhibición de táboa, o que podemos facer é -
Xeralmente defínese automaticamente para Prototype dinámico -
imos facelo células fixas, pola contra, imos
atopou con algúns problemas.
>> E entón, imos dicir que eu vou para ter unha sección.
Entón, é como seccións -
se xa viu a aplicación de música, cando tes artistas, seccións faría
ser o dun medio Z 's -
- As letras
e entón, vostede sabe, o individuo liñas serían os nomes dos artistas.
E así, o que é legal aquí, é que podo acceder todos os obxectos dentro
do meu storyboard través deste menú desplegable, tamén.
>> Entón, eu estou indo a facer clic na miña sección, e quero, xa sabe, quizais cinco liñas.
E, a continuación, dentro de cada liña, Quero poñer un rótulo.
E eu vou chamar este Azul.
E entón, quero poñer unha visión UI, vostede sei, quizais por, tipo, unha pequena caixa.
>> Para que eu poida amosar á xente unha vista previa da cor.
E eu vou volver á propiedade e cambiar esa cor para, oh, eu non sei
sabe, un regalo.
>> E, a continuación, teña en conta tamén, aquí, cando eu teño os accesorios, podo ter moitos
dos distintos accesorios que adoita ver.
O indicador de divulgación, o detalle, ou marca de verificación, ou simplemente detalles.
Entón, quizais poidamos facer, tipo, unha difusión indicador, por exemplo.
>> E entón, por que non podemos ter estes, copia cola-los e poñer-los no
seguinte liña da táboa.
Así, podemos chamar iso de amarelo.
E eu podería extender esa.
Imos facelo amarelo.
E, deste xeito, podemos copiar pega noso camiño.
Que foi?
Vermello.
>> Polo tanto, estes son as CS50 típico cores que xa viu en clase -
En realidade, sinto moito -
ou na páxina web.
Espero que vós poidan ver o que eu estou facendo aquí.
Aceptar.
Último.
>> Audiencia: Como engadir a liña orixinalmente?
>> RHED SHI: Entón, a pregunta era: como eu engadir a liña orixinalmente?
Fun para esta sección da táboa - ou con todo podo
seleccione a sección de mesa -
e, entón, aquí, eu actualizar o número de liñas.
>> E, déixeme esperanza de que isto funciona.
Aceptar.
A ver se isto funciona.
Oh, perfecto, incrible.
Aceptar.
Mentres eu estaba construíndo miña demo, algúns as cousas non estaban aliñados, así, grazas por
os aplausos.
>> É.
Entón, imos ver.
Nós imos facer isto só para facer nove todo - ou, en realidade, imos só
transformar todo iso en divulgación indicadores.
E entón, o que quero amosar-lle, tamén, Foi así que podo tomar cada un destes
liñas da táboa e telos interactuar -
oh.
Non
>> Oh
Ademais, quero amosar-lle -
aquí, podo poñer o título do meu controlador de navegación, non?
Entón, en realidade, vai notar, así que eu incorporado este controlador de vista interior
do controlador de navegación, podemos ver esta barra de navegación na parte superior da nosa
representación storyboard dun controlador de punto de vista.
E así, iso nos dá, así, un visual, dalgún xeito, orientar a nosa pantalla visible.
É dicir, obviamente, vai ser a barra de navegación.
>> E o que quero facer de xeito rápido, agora, é poñer en outro -
de xeito que este controlador de visualización de táboa que fixen por tomando unha delas e arrastrando o
aquí, e iso é o que me permitiu rapidamente, realmente, crear unha exhibición de táboa
controlador.
Se temos tempo, con todo, vai ver que, por medio de programación, é unha
pouco máis complicado para crear unha táboa vista controlador, por que non
un par de métodos que son necesario para que poida, dalgunha forma, escribir
para fóra, para que a vista da táboa controlador para ser exhibido correctamente.
>> Con todo, eu só quero te amosar, agora, un exemplo de onde, se eu tomar isto,
por exemplo -
Engada noutro controlador de vista.
E agora, imos dicir que quero controlar alt meu primeiro azul
liña da táboa para aquí.
E quero chamar iso de azul.
E entón -
imos ver.
Estou coa vista agora, e podo cambiar o pano de fondo azul.
>> E así, o aviso previo, aquí, este desplegable menú tamén lle dá unha xerarquía de todos
destes obxectos.
Entón, unha cousa importante a notar, aquí, é que todas estas cousas, por aquí -
este controlador de visualización de táboa, a táboa vista, a sección de visualización de táboa, visualización de táboa
célula - todos estes son obxectos, o código.
Entón, vostede sabe, unha etiqueta agora está baixo o punto de vista de contido, etcétera.
Así por diante e así por diante.
>> Entón, se executar este código, que ver algo -
imos ver se isto - si.
Entón, alí imos nós.
Pero, se non se fai iso, ningún desas outras cousas funcionan.
Non?
Entón, só que este funciona.
E, por unha cuestión de tempo, eu non vou entrar, xa sabe, poñendo
abaixo os outros.
E este é o fin de, tipo, storyboard -
o que eu quería amosar por storyboard.
>> E, eu teño un exemplo traballado, De feito, aquí.
Entón, este é o storyboard que fixen anteriormente.
Entón, como podes ver, este foi meu controlador de navegación.
Entón, eu tiven o meu primeiro controlador de vista, entón eu tiña o meu controlador de visualización de táboa,
e entón eu tiven todo isto -
así antes, eu estaba facendo algo moi diferente.
Entón, desculpe estas cousas.
Eu probablemente vou limpa-lo máis tarde, antes Eu envialo para a produción.
>> Pero, se executar este, imos ver que todas as opcións son
dispoñible para nós.
Só que eu non fixen os plans de fondo esas cores.
Entón, boa aplicación sinxela.
>> Agora imos tratar de resolver iso programaticamente.
Aceptar.
Entón, para facelo, nós só estamos indo para iniciar un novo proxecto Xcode.
Imos facelo unha aplicación baleiro agora, porque non quere ter o
storyboard.
Entón, eu estou simplemente restrinxindo-me a non utilizar calquera dos storyboard, e un
aplicación baleiro non vai Dáme un storyboard.
Este é só para evitar me de facer trampas.
Imos ver.
Espera.
Did I -
Si
Aceptar.
>> Correcto.
Entón, aquí, estivemos con nada máis que código.
Entón, deixe-me mover esta xanela un pouco máis.
Correcto.
Como podes ver aquí, os únicos ficheiros estamos dando son AppDelegate.h e punto
m, e non temos storyboard máis.
>> Entón, se nós executar este, aínda estamos indo a chegar á pantalla branca, grazas a Deus.
OK - pantalla branca, pero nada máis.
E aquí é a parte importante.
Este é o lugar onde a acción acontece.
Nas versións anteriores, non hai xeralmente ningún código aquí, pero o
storyboard proporciona esencialmente o código para esta parte.
Non vou entrar en detalles sobre como.
>> E o que queremos facer é agora, queremos para entrar aquí, e este pequeno espazo
comeza a crear o noso programa de novo.
So -
si?
>> Audiencia: Zoom?
>> RHED SHI: Zoom.
Si, por suposto.
Aceptar.
Eu estar escribindo, e iso non debe importa moito.
Aceptar.
>> Entón, en primeiro lugar, lembre-se nós quixemos crear un controlador de navegación, non?
E tamén, como podes ver aquí, Xcode fai un gran traballo de
auto-recheo.
Entón, como vai notar, os nomes dos todo é moito máis do que
de costume, pero Xcode enche-lo para ti.
Entón, podo só prema Intro.
>> Entón, quero crear unha navegación UI punteiro controlador, e podo chamalo
navigationController.
Agora, o que fago agora?
Tras este signo igual, eu teño, en primeiro lugar, crealo dentro da memoria.
Entón, eu vou facer NavigationController alloc -
por iso, este é semellante ao malloc, que vostedes usan en C -
e logo, vou ao init-lo.
>> Entón, é moi importante que calquera obxecto que crear, quere
alloc e init-lo.
Isto vai crealo e instantialize-lo dentro da memoria, e
agora pode usalo.
Todo ben?
Se non fai iso, o seu obxecto fai non existe, e vai executar en unha morea
de problemas.
>> E entón, quero crear un controlador de vista, non?
Entón, quero crear un UIViewController Star -
así, todo é un punteiro en Objective-C, e eu vou facer
algo semellante, aquí -
distribución, o init.
Aceptar.
>> E entón, o que vou facer é, eu son vai - así, lembre, cando fixemos
a incorporar no controlador de navegación?
Isto é como facelo en código.
Vai facer navigationController
pushViewController -
>> Audiencia: [inaudível].
Será que isto vai ocorrer a nós, ou -?
>> RHED SHI: Ah, si.
Non
Gústanlle máis de min.
Non, que vai traballar para ti, tamén.
Polo tanto, estes son todos os métodos.
Así pushViewController é un método, e tamén, en concreto, é un
método de instancia da interface de usuario controlador de navegación.
Porque eu tiven que crear miña navegación UI estrela controlador, e entón eu
pode chamar este pushViewController no meu exemplo específico dun sistema de navegación de UI
controlador.
>> Audiencia: Temos que facer exactamente o palabra, ou será que xa existen para iso?
>> RHED SHI: Si, porque é un método.
É como unha función.
É como printf.
É como scanf.
É como strcompare.
Só que sabe o que pode querer escribe, e teña en conta que vai sempre
veña con cousas que son legalmente permitido para ti.
Entón, se non aparecer por aquí, entón algo está mal.
>> Entón, pushViewController.
Entón, agora, quero empurrar meu recén criado
UIViewController, e logo, animado -
quizais non.
Por que isto será o primeiro controlador de vista.
Quero dicir, aínda que eu fixen de animación, probablemente non vai aparecer, porque
é a primeira pantalla.
>> E lembre os soportes.
Entón, lembre-se de como acostumabamos os soportes?
E dentro dos corchetes, o obxecto chámase nun método -
polo que o noso obxectivo é o de navegación controlador, e método é un impulso
controlador de vista animado.
E ver como leva en dous argumentos, e están separados polo, tipo,
palabras, e dous puntos.
Entón, Objective-C intenta facelo agradable e doado para ler en voz alta -
seu código - e telo semi, dalgún xeito, ten sentido.
>> Con todo, facendo exactamente iso non é suficiente.
Déixeme afastar agora.
Facer só isto non é suficiente para conseguir o que nós podemos anteriormente.
Entón, aquí, notarás que non hai realmente non vai ser calquera tipo de
Bar, aquí, non?
Non hai ningunha barra de navegación, o que significa que aínda non teñan conseguido.
>> E podemos probar iso, tamén, por, quizais, cambiar o fondo de
ViewController, non?
ViewController.background--
ah.
Entón, vexa como ViewController non tiña unha cor de fondo, aínda que eu
quería acceder a ela?
E iso é porque ViewController é un recipiente para a vista.
Entón, el ten unha propiedade vista, que logo ten unha cor de fondo.
>> E, podo define-lo, unha especie de tediosamente, chamando a cor
no obxecto UIColor.
Entón, aviso aquí, RedColor é un método.
É un método de clase de UIColor.
Porque eu non tiña que crear un exemplo real dun UIColor en orde
para chamar o método nela.
Eu só, simplemente, chamouse sobre o nome do tipo-like.
Eu, como, chamouse a en int, int, se tivese, así, un método a el, por exemplo.
>> E así, se executar este código, imos ter en conta que o fondo é
realmente non vermello.
Aínda é branco.
E como podemos evitar dicir, teña en conta como está o self.window.
É dicir, como, o recipiente final para a súa aplicación.
É o último que conteña todo na pantalla, para un
iPhone ou aplicación iPad.
>> E, cómodo, self.window ten esa propiedade chamada
RootViewController.
E iso será o punteiro para o primeiro controlador de vista interior
da súa aplicación.
Entón, o que queremos facer aquí, agora, é para definir que igual a nosa navegación
controlador.
Non?
Porque, tecnicamente, a navegación controlador é a nosa primeira vista
controlador.
Mantén o control dunha matriz de outro punto de vista controladores, e que empurrou este
controlador miras esa matriz no controlador de navegación.
>> Entón, non quere facelo.
Isto non sería realmente axudar.
Quere facer iso, se quería facer un controlador de navegación, o que máis
de vostedes probablemente porque vai querer para, dalgún xeito, teñen algún tipo de,
como, menú para voltar ou algún páxina de inicio para voltar, en vez de un
pantalla baleira.
Si?
>> Audiencia: É incómodo para que poida ampliar a -
>> RHED SHI: Yeah.
Entón, si.
Este é o código, e agora Imos proba-lo.
>> Entón, alí imos nós.
Maxia.
Entón, Aceptar.
Grazas.
Aceptar.
Entón, agora, o que queremos facer é - entón, nós estamos limitando, aquí, non?
Podemos potencialmente escribir todo dentro deste dunha función.
Pero iso non é como iOS desenvolvemento xeralmente funciona.
>> Entón, o que nós imos facer é, estamos vai crear algúns novos ficheiros.
Pero, máis en concreto, imos crear outra clase Objective-C, ou
outro obxecto -
clase e obxectos son intercambiábeis aquí.
E, aquí está como eu podería, potencialmente, crear outra clase de U controladores.
>> Entón, é unha sub-clase, como podes ver, aquí, é unha sub-clase da
Controlador de vista da interface de usuario, pero eu podo chamalo de calquera outro nome aquí.
Podería chamar iso de CS50, eu podería chamar este controlador de vista, eu podería chamar
este controlador de vista bla -
o que eu queira.
Este é só un nome para a clase.
Con todo, iso vai ser importante porque, esencialmente, o que estou facendo
aquí é, eu estou creando outro nome da clase.
Entón, que vai ser, tipo, algúns especie de tipo ou un obxecto.
Así, debe ser algo máis xenérica.
Non vai ser moi específico.
>> E tamén, quero apuntar fóra estas dúas opcións.
Porque estamos facendo todo dentro código, ás veces é moito máis doado
para levar un arquivo de interface, de xeito que Podo literalmente arrastrar e soltar, como
fixemos anteriormente co storyboard -
vostede sabe, unha etiqueta, ou un botón, ou calquera outra cousa.
E así, XIBs son arquivos que permiten que Faino, e ten que liga-lo
con esta imaxe controlador de vista.
>> Entón, eu vou deliberadamente non comprobar iso.
Normalmente eu ía comprobar isto, e se eu só fixo isto para iPhone ou iPad, eu
ía comprobar iso e simplemente ter un para, vostede sabe, o iPhone ou o iPad.
Pero sempre que eu estou facendo universal, vou para crear dous deles máis tarde.
Entón, eu vou deliberadamente Desmarque esta.
>> Isto tamén é moi importante.
Moitas veces, eu tiven erros onde iso non foi comprobado.
E así, obviamente, este ficheiro non é, tipo de, tipo, incluídos ou importados
dentro deste cartafol de proba.
E así, o meu código non ten absolutamente ningunha idea da existencia deste ficheiro, e
que causa moita dor e horas de depuración.
Pero, só comproba se esta é revisada de xeito que, xa sabe, o obxectivo desta
ficheiro é para esta aplicación.
>> Aceptar.
Entón, agora creamos dous novos ficheiros.
E eses arquivos parecen moi baleiro.
E, de feito, imos tamén seguir pola creación dos ficheiros xib.
Entón, antes, eu estaba no Coco touch desplegable.
Agora, eu estou indo a ir ao Usuario Interface de chamada, e como podes ver, eu
pode crear un storyboard.
>> Así, aínda que eu comece cun baleiro aplicación, aínda podo usar un
storyboard.
Aínda que, está complicado en canto de como quere conectarse
que ao seu código.
Entón, eu non vou alá.
>> Pero, o que queremos facer agora é crear unha visión.
E pode escoller para un iPhone ou un iPad.
E tipicamente, a identificar a diferenza - se está facendo unha
aplicación universal -
quere poñer un iPhone subliñado, ou pode facer un Twiddly.
Realmente non importa.
É simplemente para se diferenciar que vista é para o que dispositivo.
>> E así, agora ollar.
Eu teño unha pantalla que eu poida traballar.
E así, por exemplo, podo poñer unha etiqueta aquí, xa sabe, e eu tamén pode pór
outro botón aquí.
Eu non vou incomodar cambiar os valores aquí.
>> Pero, o que é importante aquí é que o propietario do arquivo -
así, eu estou dentro do iPhone vista, arquivo iPhone xib.
E abaixo nesta área de navegación ou menú desplegable, quero ir ao
propietario do arquivo.
E esta é a verdade importante paso aquí.
Eu quero facer o punto de vista de clase controlador, de xeito que este ficheiro é xib
será asociado con meu controlador de vista.
E todo o que fago no meu punto de vista controlador de programación é
será reflectido aquí.
>> Entón, con todo, ter en conta que -
De feito, imos facer ese punto de vista fondo azul, por exemplo.
Ou verde.
E entón, por iso, se observa, de volta este código, é aquí que chegamos ao noso
controlador de navegación.
>> Aínda que nós fixemos ese paso, é aínda vai ser vermello, non verde.
E hai unha razón para iso.
É porque, cando nós inited noso controlador de vista, aquí -
Sentímolo, é un pouco tolo -
cando inited noso controlador de vista aquí, nós inited el do tipo xeral
UIViewController.
OK?
Entón, nós non mesmo facer con esta clase.
>> Entón lembre, é dicir como unha clase agora.
Pode ser pensado como un tipo, só como UIViewController é un tipo.
E, a fin de usalo, o que o que necesitamos facer é Import-lo -
ViewController importación -
e, como podes ver, AutoPreenchimento para min.
Entón, ViewController -
e agora, aquí, podo cambiar isto UIViewController para ViewController.
E agora, aquí, podo cambiar isto para ViewController.
>> Imos correr de novo.
El aínda está vermello.
E a razón pola que é aínda vermello é porque -
woah, o que pasou alí?
Quixemos asociar este xib arquivo co controlador de vista.
Con todo, a fin de que realmente facer que, necesitamos entrar nesa.
E cando facemos o init, que queremos facer initWithNibName, e entón queremos
facer o en cadea View_iPhone, por exemplo.
Pode ignorar o paquete aquí.
>> E iso vai permitir que nós, en realidade -
uh oh, hai un problema.
Correcto.
>> E así, non é un problema porque, en noso arquivo de visión xib temos unha etiqueta e
temos un botón.
Con todo, a pesar de ter conectado aqueles dous, non hai nada dentro
ViewController.h ou ViewController.m que reflicten as
botóns ou as etiquetas.
Entón, a xente ten que escribir aqueles en que propiedades do controlador de vista.
>> Entón, é así que declarar unha propiedade.
Ten en, xeralmente, estas dúas opcións.
Para os efectos de nós e este seminario, Eu diría que, en xeral,
a maioría das propiedades son nonatomic e reter.
Pode ler-se por Google busca, vostede sabe, a diferenza entre
atómica e reter, vostede sabe, Google ou algo así.
E eu vou leva-lo para, como, Pila Overflow, onde a xente terán
respostas para as diferenzas entre aqueles.
Pero, polo de agora, iso é o que nós quere preocuparse.
>> E nós queremos facer unha etiqueta UI, estrela, e podemos chamalo de todo o que queremos.
Podemos chamar iso, xa sabe, a etiqueta.
E, imos crear outro un para o botón.
E lembre de incluír o asterisco, porque estamos a xestionar punteiros
practicamente todas as partes dentro de Objective-C.
>> Con todo, isto non vai resolver o problema, como podes ver aquí.
E a razón é porque, sempre que quere conectar unha etiqueta xib ou un
botón para o programa, ou a cabeceira e arquivo de implantación, queremos
engadir este anaco de código -
saída.
Teña en conta que é unha palabra clave.
>> E, así que eu rematar de escribir iso, debe ter estes
dous círculos, aquí.
Normalmente, eles non están cubertos
Non sei por que son.
Pero, xeralmente, terá que manualmente conecta-los, indo a este lado
área de comunicacións.
>> E así, agora, eu teño a miña etiqueta seleccionado, e quero arrastrar ese novo
referenciando saída para o propietario do meu arquivo, e, en continuación, prema en Label.
Entón, agora, por fin, ese rótulo é conectado a este marcador.
E este rótulo é o que nós imos programaticamente usar para cambiar o seu
texto, a súa fonte, o seu fondo cor, etcétera.
>> Entón, por que non facemos o mesmo para o botón?
E como vai notar, para o botón, é un pouco máis complicado.
Porque, quero dicir, ten que prensa no botón, polo que ten unha morea
de opcións para o xeito no que os usuarios pode premer un botón.
E entón, veremos máis tarde que podemos chamar iso á nosa
código para que funcione.
>> Así, polo momento, con todo, que desexa chamar o para o botón real
dentro do noso código.
Entón imos para a nova toma de referenciação, e, a continuación, facer o botón.
Agora, imos realizar este novo.
Uh oh.
Aceptar.
Eu non sei o que está pasando aquí agora.
Whoa.
Só un momento, aquí.
>> En realidade, por que non dar un mirar outro exemplo en
o interese de tempo.
Aceptar.
Entón, aquí está o máis pronto preparado exemplo para ViewController.
Como podes ver aquí, eu incluído as propiedades á
etiqueta eo botón.
E entón, este anaco de código aquí -
este IBAction -
foi unha conexión con este botón aquí.
Entón, como podes ver aquí, Touch Up Dentro está ligado ao selector
chamado botón premido.
>> Entón, podemos realmente pasar polo movemento novo, aquí, tomando retocar
Dentro e arrastrando-o para Propietario do arquivo, e logo
prema o botón premido.
Agora, imos realizar o noso código.
Entón, agora, ese botón agora funciona e vai levar á seguinte páxina.
>> E, en canto á nosa controlador de vista, este é o anaco de código que levou
coidar do botón premido.
E é importante ter en conta aquí, que Eu creei outro tipo de visión
controlador de chamada de mesa controlador de vista.
Entón, este foi semellante cara atrás en storyboard, cando eu arrastrei un dos
eses controladores táboa vista ao storyboard.
Estou creando outro
>> Punteiro ao controlador de visualización de táboa, alloc e init-ing-lo e, a continuación, facendo
controlador de navegación auto punto, empurrar ViewController, esta nova
viewController.
E eu definir a animación para si, porque agora dentro do meu programa, e eu
quere realmente ver a animación vai a partir da páxina principal á mesa
controlador de vista.
>> Audiencia: Aínda se preocupar sobre a recollida de lixo?
>> RHED SHI: Qué é isto?
Non
Entón, a pregunta era: ten para traballar coa recollida de lixo?
Entón, Xcode 4 tivo como ARC, que é conta de referencia automática.
E así, xeralmente cando inicia un novo proxecto, que ía comprobar iso, porque
ninguén quere xestionar liberación de memoria e outras cousas.
Pero eu creo que o Xcode 5, non hai sequera esta opción no novo proxecto.
Entón, el automaticamente fai isto para vostede.
Si?
>> Audiencia: Pode exportar un PDF en storyboard?
>> RHED SHI: Si, definitivamente.
Así, todos estes serán incluídos en código fonte, para que vostedes poden consultar
o proxecto Xcode real para el.
Si?
>> Audiencia: Pero, quero dicir, como, podo imprimir un PDF co meu storyboard?
Se eu só quero exportar o imaxes para amosar alguén.
>> RHED SHI: Oh yeah.
Eu creo que, se cadra, pode simplemente tomar unha captura de pantalla.
Si, e envialos dunha pantalla tiro ou algo así.
É.
>> Entón, imos ver.
En interese de tempo, eu creo iso é todo o que podo cubrir hoxe.
Pero sei que é, en realidade, só mal tocando a superficie do IOS
desenvolvemento.
Entón, por favor póñase en contacto me se ten algunha dúbida sobre IOS
desenvolvemento.
E, con sorte, eu vou ser capaz de limpar un pouco do código para o tipo de letra
ficheiros de código, de xeito que vai ter algún exemplos moi bo para traballar.
>> Aparte diso, se vostedes están indo ao CS50 hackathon, eu pode ou
non estar alí, e podo axudar con algún desenvolvemento IOS, tamén.
Entón, moitas grazas, persoal.