[Powered by Google Translate] [સેમિનાર] [iOS: એક બોસ જેમ Apps લેખન] [ટોમી MacWilliam] [હાર્વર્ડ યુનિવર્સિટી] [આ CS50 છે.] [CS50.TV] અધિકાર બધા, દરેકને, iOS પર આપનું સ્વાગત છે: એક બોસ જેવી Apps લેખન. આ પરિસંવાદ માટે આઇફોન માટે એપ્લિકેશન્સ લખી રહ્યું છે અને છેવટે આઇપેડ માટેની એપ્લિકેશન્સ લેખન, અને તેથી અમે મૂળભૂત માટે લઈ જવામાં જઈ રહ્યાં છો કેવી રીતે એપ્લિકેશન બનાવવા માટે એક દંપતિ અલગ ઉદાહરણો માટે, ચહેરાના ટેક ટો જેવું સરળ રમત, અથવા જો તમે વધુ સમાચાર વાચક અમુક પ્રકારના જેવા એપ્લિકેશન બનાવવા રસ છો અથવા કંઈક કે જે ઈન્ટરનેટ હું પણ તે વિષે સાથે ક્રિયાપ્રતિક્રિયા કરે છે. અહીં અમારા સંક્ષિપ્ત કાર્યસૂચિ છે. આઇઓએસ એપ્લિકેશન્સ ઉદ્દેશ C-કહેવાય ભાષામાં લખવામાં આવે છે, અને તેથી આ થોડો સી માટે સમાન છે, પરંતુ ખરેખર ન બીટ છે, તેથી અમે ભાષા પોતાના વિશે થોડુંક કરી વાત કરીશું અને પછી આઇફોન આ એપ્લિકેશન XCode કહેવાય કાર્યક્રમ વાપરી એપ્લિકેશંસ બનાવવા કેવી રીતે, જે જો તમે તેને હજુ સુધી ડાઉનલોડ કર્યું હોય ડાઉનલોડ હવે શરૂ મફત લાગે. તે ઘણા ગીગાબાઇટ્સ છે. તે એપ સ્ટોર પર મુક્ત છે, કે જેથી તમારે માટે મેક હોય જરૂર પડશે આદર્શ OS X વિતરણ શક્ય ની તાજેતરની આવૃત્તિ ચલાવી જો તમે નથી, તો સમસ્યા નં. અમે તમારા ઉપયોગ માટે વિજ્ઞાન ઉપલબ્ધ કેન્દ્ર મેક્સ છે સાથે XCode સ્થાપિત કરો, અને તેથી વિકાસ માટે તે ઉપયોગ મફત લાગે. જો તમે એપ્લિકેશન બનાવવા માંગો છો, પરંતુ તમારી પાસે એક મેક નથી, ચિંતા ન કરશો. કેમ્પસમાં સ્રોતો માટે પુષ્કળ છે. અને તેથી તે પછી અમે વિવિધ એપ્લિકેશન્સ તમે કરી શકો 2 મોટા ઉદાહરણો આવરી રહ્યા છીએ. ઉદ્દેશ C-ટેકનિકલી એ છે જે સી એક સુપર સેટ કહેવાય છે તેનો અર્થ એ છે કે જે કોઈપણ સી કોડ પણ માન્ય કોડ ઉદ્દેશ C-છે. એટલે કે અમે નળી પ્રકારની સી માટે કેટલીક વધારાની સુવિધાઓ પર ટેપ આમાંની કેટલીક સુવિધાઓ માટે ક્યારેય malloc ફરીથી લખી નથી કર્યા સમાવેશ થાય છે, ભગવાન આભાર, કોઈ તે મૂર્ખ પોઇંટરો ચિંતા કર્યા અને તેમને મુક્ત અને તે તમામ સામગ્રી તમે સી વિશે નફરત, અને તે પ્રકારની ઉદ્દેશ C-ઇનમાં. હવે, ઉદ્દેશ C-પણ ખૂબ મોટા સ્ટાન્ડર્ડ લાઇબ્રેરી છે, તેથી ઘણો વધુ કાર્યક્ષમતા તમે ઉદ્દેશ C-મુક્ત અંદર માટે વિચાર છે. યાદ રાખો જ્યારે અમે PHP લખી હતી અમે નોંધ્યું છે કે અમે ના ગયા આ નાનું આ બધી ઉન્મત્ત વસ્તુઓ તમે કરી શકો છો વિશાળ પુસ્તકાલય માટે ભાષા. આ જ વસ્તુ iOS બને. ત્યાં બૌદ્ધ કૅલેન્ડર જેવી વસ્તુઓ માટે પદાર્થો છે, અને ખરેખર કંઈપણ તમે કદાચ કદાચ એ ઉદ્દેશ્ય C-અમલીકરણ પહેલાથી જ અસ્તિત્વમાં છે વિચાર કરી શકો છો. ઉદ્દેશ C-હેતુ ભાગ કંઈક સંદર્ભ આપે છે પ્રોગ્રામિંગ ઑબ્જેક્ટ-ઓરિએન્ટેડ કહેવાય છે. આ નવી વિભાવના પ્રકારની હોય છે, પરંતુ અમે ખરેખર મોટે ભાગે શીખી કર્યું છે આ વિચારોનું પહેલેથી ઘણું. ઑબ્જેક્ટ-ઓરિએન્ટેડ પ્રોગ્રામિંગ પાછળ વિચાર છે કે જે તમે માળખું જઈ રહ્યાં છો આ બધી વસ્તુઓ આસપાસ તમારો કોડ ઘણો વર્ગો કહેવાય છે, અને આ વર્ગો ખરેખર સ્ટ્ર્ક્ટ્સ વિશાળ છે. એક સ્ટ્રક્ટ ની અંદર અમે મૂળભૂત રીતે અહીં જણાવ્યું હતું કે એક વસ્તુ છે, અને આ બાબત સભ્યો ધરાવી શકે છે. ઉદાહરણ તરીકે, એક કડી થયેલ યાદીમાં નોડ અન્ય વસ્તુઓ કરી શકે છે કિંમત જેમ, યાદીમાં બીજા ગાંઠ પર એક નિર્દેશક, અને સાથે મળીને કે નિર્દેશક અને કિંમત એક સ્ટ્રક્ટ આ એક ઉદાહરણ બનેલા હોય છે. વર્ગો ખૂબ સમાન છે સિવાય વર્ગો પણ તેમને અંદર કાર્યો કરી શકે છે. જ્યારે અમે સ્ટ્રક્ટ જાહેર, અમે માત્ર પૂર્ણાંક n અથવા નોડ આગામી * કહેવું શકે છે. હવે ઉદ્દેશ-C સાથે આપણે ખરેખર વિધેયો મૂકી શકો છો અંદર તે બાબતો. અન્ય ચીજ છે કે વર્ગો કરી શકે છે તેઓ અન્ય વર્ગોની માહિતી મેળવી શકતો નથી. ઉદાહરણ તરીકે, અમે ઉદ્દેશ C-વર્ગો આંતરિક સમૂહ જોઈ આવશે. તેમાંથી એક વર્ગ છે કે જે સ્ક્રિન માટે દષ્ટિકોણ રજૂ હોઇ શકે છે, અને તેથી એવું કહેતા હું મારી પોતાની દૃશ્ય અમલ કરવા માંગો છો અમે મૂળભૂત એપલ અંતે ઉપર, કોઈને કદાચ ખરેખર સરસ લોકો કહે છે, મારા માટે આ વર્ગ લખ્યું, અને તેને બટનો પ્રદર્શિત જેવી વસ્તુઓ સંભાળે અથવા સ્ક્રીન રેન્ડર છે, અને અમે ખરેખર pained હશે કે બધા વિધેયો જાતને અમલમાં મૂકવા માટે, અને તેથી ફક્ત દ્વારા માહિતી વારસામાં અમે બધું કે જે તમને વર્ગ કર્યું હતું કહેવું કરી શકો છો હું પણ મારા વર્ગ ની અંદર કરવા માંગો છો, અને પછી હું કેટલાક અન્ય સામગ્રી કરવા જાઉં છું, એટલે કે એક એપ્લિકેશન અમલ. કે કે શબ્દ વારસો શું અર્થ થાય છે. અમે વધુ નક્કર ઉદાહરણ જોશો. અને છેલ્લે, ઑબ્જેક્ટ-ઓરિએન્ટેડ પ્રોગ્રામિંગ સાથે કી છે કે તે માહિતી પડતો થાય છે. અમારી સમસ્યા અમુક સુયોજિત કરે છે અમે આ મોટા, વૈશ્વિક ચલો કરી શકે છે અને દરેક જગ્યાએ globals, અને તે કેવી રીતે અમે રાજ્ય ટ્રૅક રાખવા માંગો છો. વર્ગો સાથે અમે એક પદાર્થ ની અંદર માહિતી પ્રાવૃત શરૂ કરી શકો છો. જો અમે અમારી એપ્લિકેશન પર એક સ્ક્રીન છે, તો અમે ખરેખર કોઇ પણ માહિતી હોય છે જરૂર નથી અમારા કે એપ્લિકેશન અંદર બીજા સ્ક્રીન, અને તેથી વર્ગો અંદર વસ્તુઓ પ્રાવૃત દ્વારા આ ખરેખર તરફ દોરી જાય છે વધુ સારું કોડ ડિઝાઇન, અને આ વધારાના કેટલાક લક્ષણો સાથે શક્ય છે ઉદ્દેશ C-છે. Forewarning, ઉદ્દેશ C-માટે સિન્ટેક્ષ કેળા છે. તે કશું અમે પહેલા જોયેલા જેવું છે, તેથી તે શીખવા વળાંક માટે વપરાય રહ્યું એક થોડો છે શું હેક આ અર્થ છે? પરંતુ એક વાર તમે ભૂતકાળમાં વિચાર પ્રારંભિક શિક્ષણ વળાંક છે કે તે ખરેખર, ખરેખર સરળ છે માટે એપ્લિકેશન્સ લખવાનું શરૂ કરો. એક વર્ગ જાહેર, અહીં કહેવું મારા વર્ગ છે તે હાજર હોય,, અને કદાચ અહીં કેટલીક વસ્તુઓ છે કે જે હું પાછળથી વ્યાખ્યાયિત જાઉં છું છે, હું @ ઈન્ટરફેસ કહેવું જાઉં છું. હું @ ઈન્ટરફેસ કહેવું જાઉં છું. હું મારી વર્ગ એક નામ આપો જાઉં છું. અને પછી પાછળથી બીજે ક્યાંક હું @ ઓવરને કહેવું જાઉં છું, તે @ ઈન્ટરફેસ અને તે @ ઓવરને વચ્ચે બધું અને છે મારા વર્ગ હશે. કે પ્રયત્ન શું અમારી ક. ફાઈલોની અંદર જાય છે. જેમ સી અમારા ક. ફાઈલો મૂળભૂત અહીં જણાવ્યું હતું કે, કેટલીક બાબતો છે જે અસ્તિત્વમાં હોય છે. હું કરવાથી તમને જણાવું છું કે તેઓ શું હજુ સુધી કરવા માટે, પરંતુ કમ્પાઇલર ખબર પડી કે તેઓ અસ્તિત્વ જરૂર છે. બાદમાં અંદરના અમારા મી. ની ફાઈલો કારણ કે ઉદ્દેશ C-માટે મીટર તો અમે ખરેખર જ્યાં વ્યાખ્યા આ વર્ગો શું રહ્યા છીએ. અમારા સી. ફાઈલો જેમ જ, અમે વિધેયો માટે અમલીકરણ પાડવામાં આવેલ છે. ઇનસાઇડ અમારી ફાઈલ એમ. આપણે અહીં કહી રહ્યા છીએ છે બધા વિધેયોને શું મારું વર્ગ શું તેઓ તમામ કરવા ની અંદર. અને છેલ્લે, અંદર સ્ટ્રક્ટ આપણે અંદર તે સર્પાકાર કૌંસ કહેવા શકે પૂર્ણાંક n અથવા નોડ * આગામી, અને ઉદ્દેશ C-માં અમે કીવર્ડ @ મિલકત વાપરવા જઈ રહ્યાં છો, અને આ છે શું ગુણધર્મો વ્યાખ્યાયિત ચાલી રહ્યું છે, અથવા બિન વિધેયો કે મારા વર્ગો એક ભાગ છે. ઉદ્દેશ C-કાર્યો કૉલ પણ કેળા. જ્યારે અમે સી કાર્યો જાહેર અમે પૂર્ણાંક foo કંઈક કહ્યું હતું અને કૌંસ ઓપન અને પછી તેને દલીલો યાદી આપી હતી. આ એ છે જે પદ્ધતિઓ અથવા કાર્યો જાહેર ઉદ્દેશ C-જેમ દેખાય છે. જો હું કોઇ કાર્ય અથવા પદ્ધતિ જાહેર કરવા માંગો છો જ્યાં હું પદ્ધતિ કહી રહ્યો છું ખરેખર માત્ર એક કાર્ય છે કે જે વર્ગ સભ્ય છે છે, વિનિમયક્ષમ પ્રકારની છે, પરંતુ ખરેખર નથી તેથી, જેથી અંદર મારા પદ્ધતિ મને નવી પદ્ધતિ બનાવવા માંગો છો. તે કશું પરત ચાલી રહ્યું છે, તેથી તેને રદબાતલ પ્રકાર ની જ હશે. આ મારું કાર્ય પરત પ્રકાર છે. હવે અમે parens અહીં છે કારણ કે હું નથી જાણતો. આગામી મારા કાર્ય નું નામ હોવું રહ્યું છે, અને પછી છેવટે અમે અમે સી હતી જેમ જ અર્ધવિરામ છે નવા અહીં શું આ અહીં વ્યક્તિની છે. આ ભાગીદારી તૂટી ખરેખર જરૂરી છે, અને આ કહે છે કે આ અહીં પદ્ધતિ વર્ગ ઉદાહરણ કહેવામાં હોવું જ જોઈએ. પછી અમે અમારી સ્ટ્ર્ક્ટ્સ જાહેર અમે કદાચ કંઈક જેવા જણાવ્યું સ્ટ્રક્ટ નોડ n એ, અને ખરેખર બનાવનાર કે અથવા એક તે સ્ટ્ર્ક્ટ્સ ઓફ instantiated કે જેથી હું ખરેખર કામ શરૂ કરી શકે છે તે અંદર સાથે, તેથી આ આડંબર અર્થ એ છે કે અમે હોય વર્ગ instantiate માત્ર અમે instantiated જેવા કે સ્ટ્રક્ટ પહેલાં અમે તેના પર આ પદ્ધતિ કહી શકો છો. જો હું મારી પદ્ધતિઓ દલીલો ઉમેરીને પ્રારંભ કરવા માગો છો તે હજુ પણ વધુ કેળા નોંધાયો નહીં. અહીં મારા પદ્ધતિ નામ છે. પછી હું પડેલ હોય જાઉં છું, અને આ કોલોન પછી તે અહીં કહે કેટલાક દલીલો આવે છે. આ પદ્ધતિ એક દલીલ લે છે. તેની દલીલ પ્રકાર પૂર્ણાંક છે, અને તે દલીલ નામ છે અથવા ચલ કે હું પદ્ધતિ ની અંદર ની મદદથી શરૂ જાઉં છું હું કહેવામાં આવે છે. ફરીથી, આ પદ્ધતિ છે. તે એક દલીલ લે છે. જો તમે વધુ દલીલો ઉમેરીને પ્રારંભ કરવા માગો છો તે વધુ કેળા નોંધાયો નહીં કે અમે આ કોલોન કે અહીં કહે દલીલો મારા યાદી આવે છે. આ પ્રથમ દલીલ એ પૂર્ણાંક છે. હવે, આ બીજી દલીલ રસપ્રદ છે. આ ચલ કે હું અંદર મારા કાર્ય ઉપયોગ કરી જાઉં છું છે એફ કહેવાય છે, જેથી અંદર હું મારા કાર્ય કહેવા શકે એફ + 1 = અથવા કંઈક. આ અહીં વસ્તુ મૂળભૂત છે કે દલીલ અથવા પરિમાણ માટે કી છે. જેમ અમે કી કિંમત જોડીઓને હતી અને JSON અથવા સાહચર્યાત્મક એરે કંઈક ઉદ્દેશ C-કરવા માટે કહે છે, ઠીક નિર્ણય કર્યો હતો, એ જ છે કે તે ખરેખર સ્પષ્ટ છે જ્યારે તમે પદ્ધતિ આ બધા પરિમાણો શું છે કૉલ હું ખરેખર તેમને બધા નામ જાઉં છું. જ્યારે તમે કૉલ પદ્ધતિ, તમે ખરેખર andFloat કહેવું પડશે, અને પછી તમે તેને પસાર સાઇન પડશે રસપ્રદ રીતે, આ એક નામ આપવામાં આવ્યું નથી, પરંતુ તે અન્ય પરિમાણો બધા છે, તેથી જો આપણે એક 3 જી દલીલ હતી હું andFloat કહેવું શકે અને અન્ય ફ્લોટ અને તેથી. જ્યારે હું આ પદ્ધતિઓ કહી તે અભ્યાસક્રમ કેળા છે, તેથી જો હું પદાર્થ હોય છે, અને હું foo કહેવાય પદ્ધતિ વ્યાખ્યાયિત, અને હું તેને કૉલ બદલે foo ઓપન / બંધ parens કહેતા માંગો છો હું એક કૌંસ ખોલવા જઈ રહ્યો છું. અહીં મારા પદ્ધતિના નામ છે. હું કૌંસ બંધ જાઉં છું, અને આ પદાર્થ હું તેના પર કૉલ છું છે. યાદ રાખો, આ બધી જ પદ્ધતિઓનો વર્ગો માં હાજર કારણ કે તેમને વર્ગો ની અંદર વ્યાખ્યાયિત પદ્ધતિઓ હોઈ શકે છે. અહીં હું આપખુદ કેટલાક વર્ગ એક પદાર્થ બનાવ્યું છે, અને આ જે માટે વાક્યરચના છે. ત્યાં એક પદાર્થ બનાવવા માટે પગલાંઓ 2 છે. પ્રથમ પગલું કહે હું જગ્યા ફાળવી માંગો છો. આ એક malloc ની સમકક્ષ છે. અમે malloc હવે કહેવું નથી. અમે મીટર ગઇ, તે alloc કર્યો હતો, અને એમ. સાથે સી. લીધું. અમે alloc કંઈક કર્યા પછી અમે પછી તે પ્રારંભ કરવાની જરૂર છે. મૂળભૂત રીતે જ્યારે તમે વસ્તુઓ બનાવવા માટે તમે કેટલાક તર્ક હોય છે શકો છો કે ચલાવે છે જ્યારે તેઓ બનાવનાર કરી રહ્યાં છો, જેથી તમે કેટલાક મૂળભૂત કિંમતો પસાર કરી શકો છો અથવા તે કંઈક, અને તેથી આ init પદ્ધતિ છે જે વાસ્તવમાં પદાર્થ બનાવે છે. અમે પ્રથમ જગ્યા ફાળવી, જેમ આપણે સી હતી, અને પછી અમે તેને આરંભ કરવા માટે, જે કરવું અથવા સંપૂર્ણ ઘણો શકે નહિં. ત્યાર બાદ અમે એક ઑબ્જેક્ટ ઓ આ વસ્તુ પરત કરી રહ્યાં છો. ત્યાં એક તારો અહીં છે કારણ કે આ ટેકનિકલી નિર્દેશક છે, પરંતુ, ચિંતા ન પોઇંટરો કે ઉદ્દેશ C-મોટો સોદો કંઈ પણ નથી. હવે અમે આ NSObject કહેવાતા વર્ગ instantiated કરી લીધી છે, અને આ માત્ર એક રેન્ડમ વર્ગ કે એપલે છે. અમે આ instantiated કર્યા છે, અને હવે હું આ વર્ગ એક ઉદાહરણ છે આ ઑબ્જેક્ટ ઓ માં, કે જેથી અર્થ એ થાય કે જો હું વ્યાખ્યાયિત આ પદ્ધતિઓ હું તેમને આ જેવા કહી શકે છે. તેવી જ રીતે, જો હું એક દલીલ સાથે પદ્ધતિ કૉલ માગે છે તેથી આ બાર પદ્ધતિ છે, કે જે એક દલીલ લે છે, અને અહીં baz છે: qux પદ્ધતિ છે, જેથી આ 2 દલીલો લે છે. આ પદાર્થ ઓ પર એક કાર્ય કૉલ કરે છે. અર્થમાં બનાવીએ? વાક્યરચના અર્થમાં બનાવવા જોઇએ, પરંતુ તમારે પ્રકારની તે વપરાય છે. ઠીક છે, ચાલો થોડી વસ્તુઓ છે કે જે ઉદ્દેશ C-માં સમાયેલ છે તે વિશે વાત તે જરૂરી સી માં બનાવવામાં આવ્યા હતા સી અમે પ્રકારની આ મૂર્ખ અક્ષર એરે તરીકે શબ્દમાળાઓ સાથે કામ કર્યું હતું, અને તે ખરેખર હેરાન થઈ જાય છે. ઉદ્દેશ C-બધા આપણા માટે માં બાંધવામાં તે ધરાવે છે, અને તેને બનેલ છે આ NSString કહેવાતા વર્ગ મદદથી. જ્યારે હું એક NSString અમે વધુ arcane વાક્યરચના છે બનાવવા માંગો છો. તેના બદલે "cs50" અમે @ "cs50" કહેવું કહેતા કરતાં અને આ માત્ર ઉદ્દેશ C-માં શબ્દમાળાઓ જાહેર માટે વાક્યરચના છે. આ અત્યંત સરળ છે ભૂલી જાઓ, જેથી નથી. હવે એક વાર હું આ છે, આ એક સ્ટ્રિંગ છે, પરંતુ નોટિસ તે ખરેખર એક માત્ર ઉદ્દેશ છે. મેં કહ્યું NSString, જેનો અર્થ છે મને વર્ગ instantiated NSString છે, કે જે બીજા કોઈને મારા માટે લખ્યું કહેવાય છે, અને તેઓ ખૂબ સરસ હતી, અને તેથી હવે હું તેના પર પદ્ધતિઓ કૉલ શરૂ કરી શકો છો. જો હું આ પદાર્થ ઓ પર પદ્ધતિ લંબાઈ કૉલ તે મને શબ્દમાળા લંબાઈ પાછા જવાનું છે. આ સી માં strlen જેમ જ છે આ 4 પરત ફરશે. એ જ રીતે, અન્ય પદ્ધતિ હું વિશે કાળજી શકો છો આ characterAtIndex છે. આ એક પદ્ધતિ છે કે જે આ શબ્દમાળા ઓ પર કહે છે હું તમને zeroth અક્ષર વિચાર કરવા માંગો છો, અને તેથી આ મારા અક્ષર કો પરત ફરશે, અને ત્યાં આ પદ્ધતિઓનો સંપૂર્ણ વધુ ટોળું કે જે તમે ખરેખર સરળતાથી Google કરી શકો છો. એપલના દસ્તાવેજીકરણ મહાન છે, અને અમે થોડી કે પર એક નજર પડશે. તે શબ્દમાળાઓ છે. અમે પણ ચલ કદ એરે નિહિત છે સી યાદ રાખો જ્યારે અમે ઝાકઝમાળ જાહેર અમે કહી તમે 5 તત્વો, વાર્તા ઓવરને પડી. જ્યારે અમે જાવાસ્ક્રિપ્ટ અને PHP માટે મળ્યું અમે શરૂ કરી શકે છે એલિમેન્ટ ઉમેરતાં અથવા તત્વો ખસેડવાની જેવી વસ્તુઓ કરવાનું. અમે ઉદ્દેશ C-એ જ કરી શકો છો. બદલે સામાન્ય સી રીતે એક એરે બનાવો અમે ફરીથી બીજા NSMutableArray કહેવાતા વર્ગ હોય છે. ત્યાં પણ NSArray છે, અને આ માટે મૂળભૂત રીતે કેટલાક એરે પ્રાવૃત રહ્યું છે. આ કહે છે કે પ્રથમ વસ્તુ હું કરવા માંગો છો છે હું ફાળવી માંગો છો નવી એરે માટે જગ્યા છે, અને પછી હું તેને ફાળવો હું પછી તે પ્રારંભ કરવાની જરૂર છે. ફરીથી, માત્ર આ 2 પદ્ધતિઓ કહે છે. હવે આ પદાર્થ કે અંદર એનો અર્થ એ થાય હું એક ખાલી એરે ત્યાં બેસવું છે. જો હું આ એરે કંઈક ઉમેરવા માંગો છો, હું addObject પદ્ધતિ કહી શકો છો. હું એરે માટે એક ઑબ્જેક્ટ ઍડ કરવા માંગો છો, અને હું CS50 શબ્દમાળા ઍડ કરવા માંગો છો. જો હું તેનાથી દૂર કે હું કહી શકો છો ઇચ્છતા હું કરવા માંગો છો એરે પર પ્રથમ સ્થાને ઓબ્જેક્ટ દૂર કરો અથવા વિરોધી હતા. અર્થમાં બનાવીએ? ઠીક છે, તમે પ્રકારની કરો આ ચોરસ કૌંસ વસ્તુ માટે થાય છે. જો કે, એપલના લાઈબ્રેરીઓ ઘણો ની અંદર તમે આ એનએસ જોશો. આ એનએસ વાસ્તવમાં આગામી પગલું છે, જે એક સ્ટીવ જોબ્સ પ્રથમ કંપનીઓમાંની એક હતી માટે વપરાય છે, અને જ્યાં તેમણે ખરેખર કોડ ઘણો લખવાનું શરૂ કર્યું મેક ઓએસ એક્સ અને અન્ય સામગ્રી બધા માટે આધાર પ્રકારની તરીકે, અને તેથી આ એનએસ છે અને આ સરસ વારસો પ્રકારની એક અગાઉના કંપનીઓ માટે પોકાર પાછા જ્યારે એપલે પ્રથમ બહાર શરૂ કરવામાં આવી હતી. તે દરેક જગ્યાએ છે. ચાલો, એક વધુ સાકલ્યવાદી ઉદાહરણ ઉદ્દેશ C-પર એક નજર. અહીં હું XCode ની અંદર છું. અહીં વિચાર, હું પ્રથમ એપ સ્ટોર પરથી XCode ડાઉનલોડ તે ખોલી છે, અને તે પછી મેં ગયા ફાઈલ કરવા માટે અહીં, અહીં ઉપર નવી અને પછી પ્રોજેક્ટ. પછી હું કે હું આ બધા વિકલ્પો હું શું બનાવવા માંગો તો અને તેથી અમે આ વિકલ્પો પર એક નજર પાછળથી લેવા પડશે, પરંતુ આ ઉદાહરણ માટે જ છે, કારણ કે આપણે ખરેખર એક એપ્લિકેશન હજુ સુધી નથી જઈ રહ્યાં છો, હું નીચે અહીં આવ્યા, અને હું આદેશ વાક્ય સાધન જણાવ્યું હતું કે, અને આ એપ્લિકેશન કે હું આદેશ વાક્ય પર ચલાવવા શકે છે જેમ અમે સી કરવામાં ચાલી કર્યા છે કે કેવી રીતે હું આ પ્રોજેક્ટ છે, અને તેથી હવે હું અહીં છું, તેથી આ ફાઇલ પ્રથમ દેખાવ દો, અને આ ખૂબ પરિચિત દેખાવી જોઈએ. હું પૂર્ણાંક નામ છે. ત્યાં મારા મિત્ર argc, મારા અન્ય સાથી argv છે. અને તેથી અમે જોઈ શકે છે કે આ મારી પ્રથમ અરજી ઉદ્દેશ C-માટે પ્રવેશ બિંદુ છે. અહીં અમે હવે માટે આ અવગણી શકો છો. આ મૂળભૂત અમુક મેમરી વ્યવસ્થાપન સામગ્રી છે કે તમે ખરેખર નહીં કરે ક્યારેય ચિંતા કરવાની જરૂર નથી. ચાલો આ પ્રથમ બ્લોક પર અહીં જુઓ. આ પ્રથમ લીટી, જો હું કહું છું વિદ્યાર્થી * એલિસ = [[વિદ્યાર્થી alloc આરંભ]] શું છે કે આમ? આ પ્રથમ અહીં વિદ્યાર્થી, આ કદાચ એક એવો વર્ગ છે. આ એક વર્ગ છે કે એપલ લખ્યું નથી, પરંતુ તે એક વર્ગ છે કે હું લખી હતી. પ્રથમ વાત હું કરવા માંગો છો છે મને નવા વિદ્યાર્થી માટે જગ્યા ફાળવી માંગો છો, અને પછી હું તેને પ્રારંભ કરવા માંગો છો, તેથી આ મને આપે પાછા આ નવી વિદ્યાર્થી પદાર્થ છે, અને હું એલિસ કહેવાય ચલ આ સ્ટોર છું. જ્યાં તે વર્ગના માંથી આવ્યા હતા? વેલ, ડાબી બાજુ પર અહીં પર આ મારા પ્રોજેક્ટ ની અંદર વિવિધ બધી ફાઈલોને છે. અમે અહીં જોવા હું Student.h અને Student.m હોઈ શકે છે. આ ક. ફાઈલ યાદ, છે જ્યાં હું બધું જાહેર કે વર્ગ અંદર અસ્તિત્વ ધરાવતી નથી. ચાલો કે પર એક નજર. બધા હક, અહીં આપણે આ @ ઈન્ટરફેસ છે, અને આ કહે છે કે અહીં આવે છે બધું મારું વર્ગ અંદર અસ્તિત્વમાં કરશે ઘોષણાઓ. પછી હું પડેલ છે. પછી હું આ NSObject વસ્તુ છે. આ કોલોન કે વારસો બીટ અમે થોડો અગાઉ ચર્ચા કરવામાં આવી હતી નોંધે છે. આ કહે છે બધું એક NSObject કરી શકો છો જ્યાં NSObject આ કોઈ બીજા દ્વારા પરચૂરણ વર્ગ છે, બધું આ NSObject કરી શકે છે હું કે શું કરવાનો પ્રયત્ન કરવા માંગો છો. કહેતા દ્વારા: NSObject કે અર્થ એ થાય કે હું મૂળભૂત અન્ય વર્ગ ના બધા વિધેયો વારસાગત. કે ખરેખર મને વિવિધ પદ્ધતિઓ અને ગુણધર્મો કે હું ઉપયોગ કરી શકો છો સંપૂર્ણ જથ્થો આપ્યો હતો. નીચે અહીં હું 2 ગુણધર્મો બનાવી રહ્યો છું. કે મારા વિદ્યાર્થી અર્થ થાય છે, જો કે આ એક સ્ટ્રક્ટ હતા, આ 2 વસ્તુઓ હશે મારા સ્ટ્રક્ટ ની અંદર, જેથી દરેક વિદ્યાર્થી એક નામ ધરાવે છે કે એક સ્ટ્રિંગ છે, અને એક વિદ્યાર્થી પણ એક ગ્રેડ છે, જે પૂર્ણાંક છે. છેલ્લે, નીચે અહીં હું મારા વિદ્યાર્થી માટે એક પદ્ધતિ બનાવવા માટે જાઉં છું. હું મારા પદ્ધતિ કહેવાય છે, initWithName, અને તે એક દલીલ લે છે, અને તે દલીલ એક સ્ટ્રિંગ છે, અને હું કહેવાય તેને નામ. હવે આપણે અમે કેવી રીતે વાસ્તવમાં આ વર્ગ અમલમાં જુઓ. અહીં, હવે હું મારા એમ. ફાઈલની અંદર છું, અમલીકરણ માટે મીટર, હું માનું. હું મારા અમલીકરણ છે, મારા અંત, અને અહીં છે જ્યાં હું ખરેખર વ્યાખ્યાયિત છું initWithName શું કરે છે. હું initWithName, મારા પરિમાણ એ નામ, અને પછી આ છે છે જ્યાં હું ખરેખર એક વિદ્યાર્થી બનાવવા છું, અને તેથી આ થોડો છુપાયેલું છે, પરંતુ આ boilerplate પ્રકારની છે તમે તમારા બાંધનારો શામેલ કરવા માંગો છો. આ આરંભ અહીં કાર્ય, initWithName, બાંધનાર એક પ્રકાર છે. તમે મૂળભૂત રીતે નવી વિદ્યાર્થી પદાર્થ બાંધવા કરી રહ્યાં છો અને કદાચ તે અંદર અમુક માહિતી મોકલી. પ્રથમ વાત હું કરવા માંગો છો છે હું આ સુપર વસ્તુ પર init કૉલ કરવા માંગો છો. યાદ રાખો કે જ્યારે હું ક. ફાઈલમાં અહીં જણાવ્યું હતું કે, કે બધું એક NSObject એક વિદ્યાર્થી પણ ધરાવે છે. તેનો અર્થ એ કે જ્યારે હું એક વિદ્યાર્થી હું પણ જરૂર શું છે બનાવો ખાતરી કરો કે જે NSObject કે હું કે માહિતી બધી વારસામાં છું છે પણ યોગ્ય રીતે આરંભ. હું કહેવા જરૂર શું આ સુપર છે વાસ્તવમાં પિતૃ વર્ગ સંદર્ભ લો રહ્યું છે કે મને વારસામાં છું, જેથી હું તેની ખાતરી કરવા માટે હું પ્રારંભ કરવા માંગો છો બધું છે કે હું તેના પર આધાર રાખીને છું તે પહેલાં હું તેનો ઉપયોગ કરવાનો પ્રયાસ શરૂ કરો. પછી જો કે આરંભ સાચી રીતે આ કહેતા જેમ જ છે જો malloc નહોતી નલ પાછા નથી તો મને કેટલાક ગુણધર્મો સુયોજિત શરૂ કરી શકો છો. જાવાસ્ક્રીપ્ટ અને PHP માં અમે આ કીવર્ડ આ કહેવાય હતી, અને આ વર્ગ એ વર્તમાન ઉદાહરણ માટે ઓળખવામાં આવે છે. ઉદ્દેશ C-અમે આ સ્વ કૉલ કરો. જ્યારે હું self.name કહે છે કે અર્થ એ થાય કે પદાર્થ મેં હમણાં જ બનાવેલ છે જ્યારે હું જણાવ્યું હતું કે વિદ્યાર્થી alloc init, કે મને આપી ફરી એક ઑબ્જેક્ટ બનશે. તેનો અર્થ એ કે હું પદાર્થ નું નામ સુયોજિત કરવા માંગો છો ગમે મેં હમણાં સાઇન પસાર જસ્ટ સી માંગો, અમે આ કોઈ સાથે સભ્યો ઍક્સેસ કરવા માટે, જેથી self.name વિદ્યાર્થી પદાર્થ નું નામ કહે છે હવે પ્રયત્ન ગમે તમે હમણાં સાઇન પસાર થઈ રહ્યું છે અને તેથી છેવટે, હું તેને પાછા જેથી હું ખરેખર કંઈક પાછું મેળવી શકો છો. પ્રશ્નો? ઠીક છે, તેથી આ સ્વ = સુપર init, જો તમે સંપૂર્ણપણે વારસો સામગ્રી નથી સમજી નથી ચિંતા કરશો નહિ. જસ્ટ ખબર છે કે જો તમે ક્યારેય તમારા પોતાના આરંભ પદ્ધતિ બનાવવા માંગો છો કે માત્ર કે કરે છે, અને તમે જવા માટે પ્રયત્ન કરીશું. યાહ >> [વિદ્યાર્થી]. તો શું સ્વ સરેરાશ કરે છે? આનો અર્થ એ થાય કે જ્યારે અમે કંઈક આપણે હંમેશા ચકાસાયેલ જો તે નલ માટે સમાન હતી malloc, અને જો તે નલ હતી, તો પછી અમે બહાર નીકળ્યા. આ એક જ વસ્તુ છે, કારણ કે આ વળતર નલ જો, તો પછી અમે કદાચ seg ખામી માટે જઈ રહ્યાં છો જો અમે તેને ચાલાકી કરવાનો પ્રયાસ શરૂ કરો. તે અમારી વિદ્યાર્થી વર્ગ છે. તેનો અર્થ એ કે અમે બેમાંના એક માર્ગે અમારી વિદ્યાર્થીઓ પ્રારંભ કરી શકો છો. જો હું કહું છું વિદ્યાર્થી alloc init હું કે પદ્ધતિ નથી વાપરી કે હું હમણાં જ લખ્યું છું, અને તેના બદલે હું ફક્ત alice.name કહેવું કરી શકો છો, અને હવે હું મિલકત નામ સુયોજિત જાઉં છું. તેવી જ રીતે, જો હું initWithName પદ્ધતિ ઉપયોગ કરવા માંગો છો હું ફક્ત alloc કહેવું શકે છે, અને તે પછી બદલે આરંભ કહેતા હું પદ્ધતિ કે હું હમણાં જ બનાવેલ કૉલ જાઉં છું, અને હું બોબ પાસ જાઉં છું. આ બિંદુએ, આ ઑબ્જેક્ટ બોબ એક બોબ માટે સમાન નામ છે. ઠીક છે, નીચે અહીં હું કે NSMutableArray કે અમે અગાઉ જોયું હતું ઉપયોગ કરું છું. હું space.Then allocating છું હું એક નવા એરે પ્રારંભ છું. હું તેને માટે 2 વસ્તુઓ ઉમેરો જાઉં છું. આ એરે હવે વિદ્યાર્થી પદાર્થો ધરાવે છે. નોંધ કરો કે ક્યાંય હું કહેવા આ વિદ્યાર્થીઓ ઝાકઝમાળ છે નહોતી. હું જણાવ્યું હતું કે તે એક એરે સમયગાળો, છે. પછી હું મૂકી શકો છો તે અંદર ગમે કે હું માંગો છો. અહીં હું 2 પદાર્થો હોય છે. છેલ્લે, હું અન્ય પદાર્થ અહીં છે, આ ટીએફ. TF.h અહીં બોલ મૂળભૂત એ જ વસ્તુ. હું NSObject છે, અને જે રીતે દ્વારા વારસામાં છું, જ્યારે તમે વર્ગો બનાવવા આ બધા તમારા માટે કરવામાં આવે છે, ઈન્ટરફેસ boilerplate આ પ્રકારની. તે વિદ્યાર્થીઓ એક મિલકત ધરાવે છે. હું એક દંપતી પદ્ધતિઓ અહીં કે ખરેખર એક સંપૂર્ણ ઘણો નથી છે, અને તેથી તેનો અર્થ એ કે પછી હું આ ટીએફ પદાર્થ બનાવવા હું આ જેવા તેના પર આ પદ્ધતિ ગ્રેડ કૉલ કરી શકો છો. ઉદ્દેશ C-સિન્ટેક્સ પર કોઈપણ પ્રશ્નો પહેલાં અમે કેટલાક વધુ તરફ શરૂ રસપ્રદ એપ્લિકેશન્સ વિકાસ સામગ્રી? ઠીક છે, તેથી આપણે ખરેખર એક iPhone એપ્લિકેશન કરો. તમારા iPhone એપ્લિકેશન મુખ્ય વર્ગો કે તમે અંદર ઉપયોગ કરી શકશો દૃશ્ય નિયંત્રકો કહેવાય છે, અને એક દૃશ્ય નિયંત્રક મૂળભૂત એક સ્ક્રીન પ્રતિનિધિત્વ તમારી એપ્લિકેશન ની અંદર છે, તેથી જો હું સંગીત એપ્લિકેશન પર ઉદાહરણ તરીકે, છું, એક દૃશ્ય નિયંત્રક દેખાવ કે જેમાં હું મારા iPhone પર તમામ ગીતો જોવા પ્રતિનિધિત્વ કરી શકે છે. બીજો અભિપ્રાય નિયંત્રક જ્યારે હું એક ગીત પર ક્લિક કરો અને તેને રમવાની શરૂ થઈ શકે છે અથવા હું નીચે કલાકારો માં ડ્રિલિંગ છું. તે વિવિધ સ્ક્રીનો દરેક અલગ મત નિયંત્રક તરીકે રજૂ કરી શકે છે, અને એક દૃશ્ય નિયંત્રક ખરેખર માત્ર એક વર્ગ છે કે જે કહે છે કે કેવી રીતે આ સ્ક્રીન કામ કરે છે. એક દૃશ્ય નિયંત્રક ની અંદર વસ્તુઓ, અમે ગુણધર્મો નથી જઈ રહ્યાં છો, જેથી એક બટન જેવી વસ્તુઓ માટે અમારા દૃષ્ટિકોણ નિયંત્રક એક મિલકત હોઈ રહ્યું છે. અમે પણ પદ્ધતિઓ હોય છે જઈ રહ્યાં છો, અને આ મૂળભૂત છે ઘટના હેન્ડલર્સ. આ પદ્ધતિ કહે છે જ્યારે તમે આ બટન દબાવો હું કંઈક કરવા માંગો છો, અને છેલ્લે ફરીથી, અમે આ સ્વ કીવર્ડ ઉપયોગ કરવા માટે વર્તમાન હમણાં ઍક્સેસ રહ્યા છીએ. માટે iOS માં ઈન્ટરફેસો બીલ્ડ ખરેખર છે ખરેખર, ખરેખર સરળ છે. તેઓ આ સરસ ખેંચો અને છોડો ઈન્ટરફેસ બિલ્ડર કહેવાય ઈન્ટરફેસ છે, અને 2 કોર વિભાવનાઓ છે જે તમારા ઉદ્દેશ C-અપ ઈન્ટરફેસ બિલ્ડર માટે વાયર IBOutlet અને IBAction છે. એક IBOutlet ફક્ત કહે છે કે જો તમે મિલકત કે એક બટન છે ઘોષિત કર્યા, અને તમે તેને તમારા વાસ્તવિક UI માં કંઈક સુધી રોકી રાખવા માંગો, તમે કહો તે આઉટલેટ છે જઈ રહ્યાં છો. તેવી જ રીતે, જો તમે ઇવેન્ટ સંભાળનાર પ્રતિનિધિત્વ કરવા માંગો છો પછી તમે કહો તે ક્રિયા છે જઈ રહ્યાં છો. વાસ્તવમાં આ ગ્રાફિકલ રજૂઆત WIRE અને તમારો કોડ તે ખરેખર, ખરેખર સરળ છે. જો તમે IBOutlet જોડી કરવા માંગો છો, બધી તમારે કરવા છે કે તમે ક્લિક નિયંત્રિત, અને અમે આ ખરેખર ઝડપી ઉદાહરણ જોશો. તમે ક્લિક કરો નિયંત્રિત જ્યાં તે જુઓ કંટ્રોલર કહે છે. તમે ઈન્ટરફેસ માં ખેંચો જઈ રહ્યાં છો, ઊલટી, અથવા, જો તમે એક ઘટના સંભાળનાર રોકી રાખવા માંગો છો તો તમે ઈન્ટરફેસમાંથી ખેંચો જઈ રહ્યાં છો અન્ય દિશામાં હોય છે. ચાલો એક ખરેખર સરળ iOS ઉદાહરણ પર એક નજર. ચાલો એક નવો પ્રોજેક્ટ બનાવો. હું ઉપર અરજી કરવા માટે અહીં આવે જાઉં છું, અને હું એક દૃશ્ય અરજી ક્લિક કરો જાઉં છું. હું આગામી ક્લિક કરો જાઉં છું. હું મારા પ્રોજેક્ટ એક નામ આપો પડશે. હું તેને હેલો કહી શકશો. રસપ્રદ રીતે, એપલ ધારે છે કે તમે એક ઉત્પાદન બનાવી રહ્યાં છો જેથી તમે તેને વેચવા અને તેઓ પૈસા બનાવી શકો છો. નીચે અહીં હું કહે છે કે આ એક iPhone એપ્લિકેશન છે જાઉં છું. તમે એક આઇપેડ એપ્લિકેશન બનાવવા કરી શકો છો અથવા જો તમે એક તે એપ્લિકેશન્સ ઓફ બનાવવા માંગો છો કે બંને ઉપકરણો છે કે જે તમને પણ કરી શકો છો આધાર આપે છે. આ છે તમે શું તમારી checkmarks જેમ જોવા માંગો છો. તમે સ્ટોરીબોર્ડ્સ છે, જે પાછળથી જોશો વાપરવા માંગો, અને તમે ખરેખર આપોઆપ સંદર્ભ ગણતરીનો ઉપયોગ કરવા માંગો છો, જે સરસ લક્ષણ કે જે તમે malloc અને મફત કહેવું કર્યા અટકાવે છે. જ્યાં સુધી તમે malloc અને મફત કૉલ કરવા માંગો છો, હું આ ચકાસાયેલ છોડી દેશે. હું આગામી ક્લિક કરો, અને પડશે છેવટે, આ મને પૂછો રહ્યું છે જ્યાં હું તેને સેવ કરવા માંગો છો. હું બનાવવા દબાવો, અને પડશે અહીં અમે જાઓ. હું એક નવા પ્રોજેક્ટ બનાવી. ડાબી પર અહીં પર બધી ફાઈલો કે મારા પ્રોજેક્ટ ની અંદર છે, નોટિસ અને એ કે હું એક સમગ્ર જથ્થો મળી છે, અને તેણે પણ મેં કંઈપણ નથી. આઇઓએસ મહાન છે. ઉદાહરણ માટે, અહીં આ ViewController.h, આ મારી પ્રથમ દૃશ્ય નિયંત્રક પ્રતિનિધિત્વ રહ્યું છે, મારા એપ્લિકેશન ની અંદર પ્રથમ સ્ક્રીન રહે છે. હવે આપણે જાણીએ છીએ કે આ શું કહી છે. અમે કહી રહ્યાં છે હું આ વર્ગ ViewController કૉલ છું, અને એક ViewController બધું છે કે જે UIViewController કરે છે કરે છે, અને આ, ફરીથી, અમુક વર્ગ કે એપલે લખ્યું હતું કે અમારા માટે સરળ સામગ્રી ઘણો કરે છે સ્ક્રીન પ્રદર્શિત કરવા. અહીં છે જ્યાં હું ખરેખર વ્યાખ્યાયિત મારા મતે નિયંત્રક શું કરે શરૂ કરી શકો છો, અને તે તારણ કે હું ખરેખર આ કોઇ જરૂર નથી. આ બોઇલરપ્લેટના કે એપલે મને માટે મફત આપે છે. હું કે પ્રથમ વાક્ય જરૂર હતી, અથવા હું એક વર્ગ ન હોય તો, તેથી અમે તે છૂટકારો મેળવવા અને આ છૂટકારો મેળવી શકે છે. ઠીક છે, તેથી આ મારા ખાલી સ્ક્રીન છે. હવે આપણે આ MainStoryboard.storyboard પર ક્લિક કરો, અને આ છે જ્યાં તે રસપ્રદ વિચાર શરૂ થાય છે. આ મારા એપ્લિકેશન પર પ્રથમ સ્ક્રીન દર્શાવે છે. જો હું એક બટન ઉમેરવા માંગો છો, HTML માં હું એક બટન ટેગ બનાવો હતી. Android માં તમે બટન ટેગ બનાવો હોય છે, પરંતુ iOS માં જો હું માત્ર નીચે અહીં આવવા તળિયે જમણી અને જો હું આ 3 જી એક પર અહીં ક્લિક કરો જ્યાં તે ઓબ્જેક્ટો કહે છે, અને હું સરકાવો શકો છો, અથવા હું બટન માટે શોધ શરૂ કરી શકો છો. અને જુઓ, એક બટન છે, તેથી જો હું ખરેખર ખેંચો અને આ અધિકાર છોડો ત્યાં, હું માત્ર મારા એપ્લિકેશન પર આ સ્ક્રીન પર કર્યું છે એક બટન ઉમેર્યા છે. જો હું લખાણ બદલવા માંગો છો, તો હું ડબલ તેને ક્લિક કરી શકો છો, કંઈક પ્રલોભક જેમ કહે છે કે "મારા દબાવો." ઠીક છે, હવે જો હું આ એપ્લિકેશન ચલાવો, કે જેથી અમે તેને કમ્પાઇલ, જેથી તેને ચલાવવા માટે હું ટોચ ડાબી બાજુએ આવેલી પ્લે બટન પર ક્લિક કરો, અને ત્યાં મારી એપ્લિકેશન છે. મેં કંઈપણ નથી નહોતી, અને હું એક મીઠી શોધી iPhone એપ્લિકેશન મળ્યો હતો. જો હું તેને રોકવા માંગો છો, તો તમે સ્ટોપ બટન ક્લિક કરી શકો છો કારણ કે તેને વધુ મજા છે. હવે કહો કે હું ખરેખર થાય છે જ્યારે હું આ બટન દબાવો કંઈક કરવા માંગો છો. આમ કરવા માટે કે હું જરૂર શું છે મને બનાવવાની જરૂર છે એક નવી ઇવેન્ટ સંભાળનાર અથવા ક્રિયા. તેનો અર્થ એ છે કે હું અમુક પદ્ધતિ કે હું કહી શકાય માંગો છો બનાવવાની જરૂર છે જ્યારે હું બટન દબાવો, જેથી આપણે એક નવી પદ્ધતિ બનાવો. હું ViewController.h ની અંદર છું. હું કહે છે કે એક પદ્ધતિ અસ્તિત્વમાં જરૂર છે. હું પ્રથમ સંયોગચિહ્ન જરૂર છે કારણ કે હું દૃશ્ય નિયંત્રક પર આ ફોન કરી જાઉં છું. હું આ એક પ્રકાર આપવી પડે છે. આ પ્રકાર કે IBAction વસ્તુ કે અમે અગાઉ જોયું હશે છે. આ ઘટના સંભાળનાર છે, જેથી તે એક IBAction પરત ચાલી રહ્યું છે, અને આ XCode માટે હિંટ એમ કહે છે કે આ એવું કંઈક હું કંઈક WIRE માંગો છો. હું તેને buttonPressed અર્ધવિરામ, જેમ કે એક નામ આપી શકે છે. હવે હું મારા વર્ગ ની અંદર એક નવી પદ્ધતિ જાહેર કર્યું છે. મેં કહ્યું કર્યું છે અને આ પદ્ધતિ અસ્તિત્વ ધરાવે છે. હવે આપણે ViewController.m આવે છે, દો અને કહો કે આ પદ્ધતિ શું કરી શકે છે. જો હું લખીને શરૂ કરવા માટે, ઉદાહરણ તરીકે buttonPressed (રદબાતલ) સૂચના XCode ખરેખર સરસ છે અને મારા માટે autocompletes. કે ખરેખર અદ્ભુત છે. અહીં નોંધ કરો કે ફાઈલ મી. ની અંદર હું પણ રદબાતલ કહેવું કરી શકો છો, અને આ કારણ છે કે IBAction ખરેખર એક પ્રકાર નથી. તે ખરેખર ક્યાંક છે વ્યાખ્યાયિત hashtag માટે રદબાતલ હોઇ શકે છે, અને ફરી, આ માત્ર XCode માટે હિંટ કે કહે છે હું આ ઇવેન્ટ સંભાળનાર પ્રયત્ન કરવા માંગો છો, અને અમે માત્ર એક જ સેકન્ડમાં શા માટે જોઈ શકશો. જ્યારે આ બટન દબાવવામાં આવે હું નકામી કંઈક કરવા જાઉં છું પોપઅપ પ્રદર્શિત કરવા. આમ કરવા માટે કે હું આ વર્ગ એક નવી ઉદાહરણ UIAlertView કહેવાય બનાવી શકો છો, અને આ એક વર્ગ છે કે એપલ લખ્યું હતું કે નકામી પૉપઅપ્સ પ્રદર્શિત થઈ રહ્યું છે તે છે. અમે આ પોપઅપ ચેતવણી કહી, અને પડશે હું પગલાંઓ 2 છે, આ પદાર્થ બનાવવા માટે યાદ રાખો કે,. પ્રથમ વાત હું જરૂર જગ્યા ફાળવી છે. હું UIAlertView કરવા માંગો છો. હું જગ્યા ફાળવી કરવા માંગો છો. કે મારી પ્રથમ પદ્ધતિ છે. મારી આગલી પદ્ધતિ છે હું તેને પ્રારંભ કરવા માંગો છો, અને તેથી હું આ મોટા, લાંબા initWithTitle કહેવાય પદ્ધતિ હોય છે. જે સામાન્ય નિયંત્રિત કરવા માટે આ પોપઅપ શું કહે બનશે. મારા પોપઅપ ઓફ શીર્ષક હેલ્લો હોઈ શકે છે. આ પોપઅપ ઓફ સંદેશો પ્રયત્ન "આ iOS છે." કરી શકો છો પ્રતિનિધિ વસ્તુ, મને ખબર નથી કે શું છે. ચાલો તે કશું કહેવું. હવે બટન છે જે દેખાય રહ્યું છે જેમ કે "તે ખાતરી છે કે" કંઈક કહી શકો અને હું ખરેખર કોઇ અન્ય બટનો નથી માંગતા, તેથી આપણે કે કાઢી નાખવા અને કૌંસ બંધ કરો. ઠીક છે, હું એક વધારાનું એક બનાવ્યું છે. ત્યાં અમે જાઓ. આ રીતે મને એક નવા પોપઅપ બનાવી શકો છો. જો હું ખરેખર પોપઅપ બતાવવા માંગો છો હું શો પદ્ધતિ કૉલ કરવા માંગો છો. આમ કરવા માટે કે હું ચેતવણી અને શો કહેવું કરી શકો છો, અને ફરી, સ્વયંપૂર્ણ સુપર સરસ હતો. જો હું ભૂલી ગયા છો કે શું હતું, જો હું માત્ર s માં લખ્યું, હું મારફતે અહીં સરકાવવા માટે બહાર આકૃતિ તે શું હતું શકે છે, અને તે સરસ રીતે ફિલ્ટર. હવે હું આ નવી પોપઅપ બનાવી. અમે પાછા પ્રતિનિધિ શું અર્થ પછી આવો પડશે, અને હવે હું કહેવા હું આ પદ્ધતિ ઉત્તેજિત કરી કરવા માંગો છો માંગો છો જ્યારે હું બટન દબાવો, જેથી હું મારા સ્ટોરીબોર્ડ પર પાછા આવવાની જાઉં છું, અને હું હવે આ IBAction જોડી કરવા માંગો છો. પ્રથમ વસ્તુ તમે કરવા માંગો છો છે બટન ક્લિક કરો. જ્યારે હું આ બટન દબાવો હું શું કશુંક કરવા માંગો છો. હું નીચે નિયંત્રણ પકડી ન જાઉં છું. હું ક્લિક કરો અને બટન ખેંચો જાઉં છું અહીં ઉપર જ્યાં તેને જુઓ કંટ્રોલર કહે છે. અમે જોઈ શકો છો કે જે તેને સરસ રીતે અપ અજવાળે છે. જો હું દો મારા માઉસ સાથે જાઓ હવે હું અહીં પર આ પોપઅપ હોય છે, જ્યાં હું કેટલાક વિકલ્પો હોય છે. આમાંના ઘટનાઓ કે હું રજીસ્ટર કરી શકે છે. આ એ જ પદ્ધતિઓનો હું મારા IBActions તરીકે ક ફાઈલ જાહેર બધી હોય છે. આ રીતે XCode જાણે શું આ થોડું યાદીમાં દેખાશે જોઈએ, જેથી માત્ર એક સંકેત છે. જો હું દબાવવામાં બટન પર ક્લિક કરો, હું હવે ઘટના સંભાળનાર નોંધણી કરાવી છે. જાવાસ્ક્રિપ્ટ અમે કહી હું કેટલાક કોડ કે જે ઘટના સંભાળનાર રજીસ્ટર પડી. ઉદ્દેશ C-તે ખરેખર હતી કે સરળ. જો હું આ ફરીથી ચલાવો હવે જ્યારે હું બટન દબાવો મારા ઘટના સંભાળનાર માટે ગોળીબાર રહ્યું છે, અને હું આ પોપઅપ વિચાર જાઉં છું. સુપર, સુપર ત્યાં સરળ. જો તમે ક્યારેય ઘટનાઓ કે જે રજીસ્ટર થઈ થવું તમામ જોવા માંગો છો એક ઘટક પર જો હું આ બટન પર ક્લિક કરો અને હું અહીં આવવા પર જમણી બાજુ પ્રથમ તમે અહીં જોઈ હું બટન પ્રકાર જેવી વસ્તુઓ કરી શકે છે શકે છે, તેથી જો તમે એક તે હું કે ઉમેરો સંપર્ક બટન માંગો છો અથવા જે. જો હું ઘટનાઓ કે જે આ બટન પર હોય છે બધી જોવા માંગો છો જો હું અહીં ઉપર જમણી બાજુએ બધી રીતે આવવું અમે અહીં ઘટનાઓ હું આ અલગ અલગ ઘટનાઓ બધી અંતે જોઇ શકો છો. હું બટન દબાવો, જ્યારે હું દો બટન ઓફ જાઓ, જ્યારે હું નળ ડબલ અથવા જે કરી શકે છે, અને એક હું હમણાં જ રજીસ્ટર છે અને આ ઘટના ટચ કહેવાય ઉપર આધારિત છે, અને આ કહે છે કે જલદી મારી આંગળી બોલ બટન આવે છે ઇવેન્ટ કે જે આગ માટે જઈ રહ્યો છે, અને તે બરાબર શું માત્ર થયું છે. આ મૂળભૂત બટન દબાવવામાં ઘટના પ્રકારની છે. કોઈપણ પ્રશ્નો અત્યાર સુધી? ઠીક છે, કે અમે કેવી રીતે અમારી કોડ વસ્તુઓ WIRE શરૂ કરી શકો છો અમારા ઈન્ટરફેસ ની અંદર વસ્તુઓ માં. યાદ રાખો કે પ્રથમ વસ્તુ અમે આમ હતી કોડ શોધી હતી, અને પછી અમે વાયર્ડ કોડ માટે ઈન્ટરફેસ, અને ત્યાં અમારી પ્રથમ એપ્લિકેશન છે. ઠીક છે, કે જે ખરેખર ઠંડી હતી, અને અમે આ બટન બનાવી. તો શું આપણે કરવા માંગો છો નથી માટે ગુણધર્મો સમૂહ બનાવો આ બટનો રજૂ? ઉદાહરણ તરીકે, ચહેરાના ટેક ટો હું 9 બટનો છે, અને તે સુપર, સુપર માટે ખેંચો અને છોડો 9 વખત હોય નકામી હશો અથવા જો હું 81 સાથે ચહેરાના ટેક ટો બનાવવા બદલે 9 હતી અને હું ખેંચો અને છોડો 81 વખત હતો અને તે નબળું છે. અમે તેના બદલે શું કરી શકો છો એક HTML જેવી જ છે જ્યારે અમે ID અને નામો જેવી વસ્તુઓ હતી અને અમે વસ્તુઓ માટે શોધ કરી શકો છો તેમના ID દ્વારા, ત્યાં iOS માં સમાન ખ્યાલ ટૅગ્સ કહેવાય છે. ટૅગ માત્ર એક ઘટક માટે અનન્ય આંકડાકીય આઇડેન્ટીફાયર છે. જો હું કહું છું આ 0 એક ટૅગ છે, ઉદાહરણ તરીકે, જો હું બનાવો બટન ક્લિક કરો અને તેને 0 ની ટેગ આપે છે, અને અમે જોશો કેવી રીતે માત્ર એક બીજી કે કરવું, જો હું કે બટન મેળવવા માંગો છો કે હું ફક્ત કહે હું કહી શકો છો આ પદાર્થ અહીં ઉપર પદ્ધતિ viewWithTag, આ ઉદાહરણ તરીકે, self.view કે જે વર્તમાન સ્ક્રીન દર્શાવે છે,. જો હું કે viewWithTag પદ્ધતિ કહી, હું પાછા 0 ટેગ સાથે બટન ખેંચી જઇ રહ્યો છું. ચાલો ઇમારત ચહેરાના ટેક ટો દ્વારા આ પર એક નજર. પ્રથમ, આ મારા સ્ટોરીબોર્ડ છે. હું આ 10 UI બટનો બનાવી છે. નોટિસ તેઓ બધા જ માપ છો. જો હું એક આ બટન પર ક્લિક કરો અને હું અહીં ફરી આ જમણી બાજુ પર આવે છે તમે જોશો હું ફોન્ટ અહીં ગોઠવ્યો છે, તેથી હું ફોન્ટ થોડો મોટા કર્યા, પરંતુ હું પણ કર્યું હતું હું આ ટેગ સુયોજિત કરો. મેં કહ્યું હતું કે આ 1 નું ટેગ છે, અને તે ઉપર ડાબી બાજુએ છે. હવે, જો હું બીજું બટન ક્લિક કરો, અને આ બીજા અહીં એક જેવી, હવે તમે જોઈ શકશો કે મારી ટેગ 2 છે. આ બટનો દરેક માત્ર એક અનન્ય ટૅગ છે, અને તેથી આ પછી છે હું કેવી રીતે કરું છું માટે વાતચીત શરૂ થઈ રહ્યું છે મારા એપ્લિકેશન સાથે. આ એક દૃશ્ય નિયંત્રક તમામ અંદર છે, પરંતુ અહીં છે, આપણે શું હોય છે. અમે 3 ગુણધર્મો અહીં છે. પ્રથમ એક અને એક છેલ્લા મારા બોર્ડ રાજ્યના પ્રતિનિધિત્વ કરવાના છે. મૂળભૂત રીતે આ પ્રથમ એક રજૂ જ્યાં Xs અને ઓસ છે એરે છે. આ અન્ય એક અહીં અમને કહે વળાંક જેની છે. તમે ધ્યાન પડશે કે હું પણ આ બધી વસ્તુઓ અહીં છે. પહેલાં જ્યારે અમે ગુણધર્મો જાહેર અમે તેમને એક નામ અને પ્રકાર આપ્યો હતો. અમે પણ તેમને કેટલીક વધારાની માહિતી અહીં આપી શકે છે. આ પ્રથમ nonatomic કહે છે, અને આ શું કહે છે મૂળભૂત છે માત્ર એક વસ્તુ ક્યારેય એક સમયે આ ચલ ઍક્સેસ કરવાનો પ્રયાસ કરી હશે. તમે વધુ જટિલ કાર્યક્રમો કે જે બહુ થ્રેડેડ છે કરી શકે, અને તેથી સ્ક્રેચ માં અમે અલગ થ્રેડો હતી, અને વિવિધ sprites જ સમયે અલગ અલગ બાબતો કરી કરી શકે છે. જો કે આ કેસ છે, કે જે તે કશું કે અમે જોઈ આવશે નથી નથી, જો આપણે nonatomic કહેવું તે ખરેખર વસ્તુઓ થોડો ઝડપી બનાવી રહ્યું છે. અમે પણ આ સોંપો, મજબૂત, અથવા નબળું કહેવાય વસ્તુ છે. આ સોંપી માત્ર કહે છે કે આ એક પ્રમાણભૂત પ્રકાર છે. આ એક ઑબ્જેક્ટ અથવા નિર્દેશક કારણ કે આ માત્ર એક bool નથી, જેથી bool ઉદ્દેશ C-માં સમાયેલ છે. આ કહે નથી પ્રયાસ કરવા માટે અહીં પોઇન્ટર સાથે ફેન્સી કંઈપણ નથી. તે એક નિયમિત જૂના scaler છે. મજબૂત અને નબળા, આ નબળા કે વાસ્તવમાં કહે છે હું આ દેખાવ નિયંત્રક કંઈક થઈ પોઇન્ટ કરવા માંગો છો. હું ખરેખર ફાળવી નથી જવું અથવા છું મારી જાતને આ init. ઇન્ટરફેસ બિલ્ડર, જ્યારે હું એપ્લિકેશન ચલાવો, કે બધા આરંભ હેન્ડલ રહ્યું છે. જો હું નબળા કહે છે કે કહે છે કે કોઈએ આ બનાવવા કરી રહ્યું છે. જો હું મજબૂત કહે, આ કહે છે કે હું એક પ્રયત્ન જાઉં છું કે આ બોર્ડ પદાર્થ બનાવી છે, અને તેથી અહીં હું કેટલાક વધુ પદ્ધતિઓ અહીં હોય છે, ઉદાહરણ તરીકે, જ્યારે નવી રમત બટન દબાવવામાં આવે માટે એક ક્રિયા, જ્યારે અન્ય બટનો કોઈપણ દબાવવામાં આવે ક્રિયા, અને એટ વગેરે. અમે પણ ચહેરાના ટેક ટો ની તર્કશાસ્ત્રના ખૂબ માં મળશે, જોકે તે ખૂબ જ આકર્ષક છે, પરંતુ આપણે પર એક નજર વસ્તુઓ કે અમે iOS ની અંદર કરી શકો છે. આ નવી રમત પદ્ધતિ ઉત્તેજિત કરી રહ્યું છે જ્યારે પણ હું નવા રમત બટન દબાવો. માટે રોકી રાખવા કે હું ફક્ત મારા સ્ટોરીબોર્ડ પર આવે છે. હું નવી રમત પર ક્લિક કર્યું. જો હું ઉપર આવવા જમણી અહીં હું કે જોઈ શકો છો છે newGame પદ્ધતિ વાયર્ડ ઇનસાઇડ ઉપર ટચ કરો. તેથી જ આ પકવવામાં કરો રહ્યું છે. આ newGame પદ્ધતિ કેટલાક સેટ કરવા ઉપર રહ્યું છે. તે કહે છે કે હું તમને બોર્ડ રાજ્ય સાફ કરવા માંગો છો બનશે. આ ચંચળ એરે પર સરસ પદ્ધતિ છે. આ કહેવું તે હવે એક્સ વળાંક છે રહ્યું છે, અને હવે હું આ viewWithTag વસ્તુ લાભ લેવા જાઉં છું. હું જાણું છું કે મારા બટનનો ટૅગ્સ 1-9 હોય છે, અને તે હું આપખુદ લેવામાં છે. જો હું દરેક બટન લખાણ સુયોજિત કરવા માટે ખાલી થવું હોય કારણ કે મેં માત્ર એક નવી રમત શરૂ કર્યું અને હું કોઇ નથી માંગતા Xs અથવા ઓસ પર હું આ કરી શકો છો મૂકવામાં આવી હતી. હું કહી શકીએ હું ટેગ સાથે દૃશ્ય, 1, 2, 3, 4 એટ વગેરે કરવા માંગો છો. આ એક અલગ બટન દરેક સમય ખેંચી જશે. અહીં હું તેને ભૂમિકા માટે UIButton જાઉં છું. જેમ અમે ints ફ્લોટ્સ અને ઊલટું માટે ભૂમિકા કરી શકે છે આ કહે છે કે હું એક UIButton આ ભૂમિકા કરવા માંગો છો. તેનો અર્થ એ કે આ પ્રકારની UIButton * રહેશે પોઇન્ટર કારણે છે, પરંતુ ગભરાશો નહીં, તેઓ ડરામણી હવે નથી. એકવાર હું આ બટન હું તેની પર એક પદ્ધતિ કૉલ જાઉં છું હોય છે. આ પદ્ધતિ setTitle forState કહેવામાં આવે છે, અને તેથી આ કહે છે હું બટન લખાણ સુયોજિત કરવા માટે ખાલી શબ્દમાળા થવા માંગતા હો, અને મેં તે ખાલી શબ્દમાળા જ્યારે તે ન દબાવવામાં છે કરવા માંગો છો. જો હું આ પદ્ધતિ ઉપયોગ કરું છું, હું બટન લખાણ બદલી શકો છો જલદી કોઈ તેની બનાવ્યા, પરંતુ અમે કહી જ્યારે બટન માત્ર ત્યાં બેસવું છે કરવા માંગો છો હું લખાણ ખાલી કરવા માંગો છો. છેલ્લે, અમે મારા બોર્ડ પ્રારંભ જઈ રહ્યાં છો, અને હું કહે છે કે બધું 0 અંતે હાલમાં જાઉં છું, આ બોર્ડ જેથી સભ્યો નિર્વિકાર એક ચંચળ એરે છે, જેનો અર્થ છે કે હું addObject પદ્ધતિ અને માત્ર એક 0 અંદર કૉલ કરી શકો છો. કે શું થાય છે જ્યારે હું એક નવા રમત બનાવો. ચાલો એક બીજા પર એક નજર. આ અહીં પદ્ધતિ IBAction કે દબાવવામાં કરી રહ્યું છે તે છે દર વખતે એક તે વર્ગની દબાવવામાં આવે. હવે અમે કેટલીક ચહેરાના ટેક ટો તર્કશાસ્ત્ર અહીં છે. અમે આકૃતિ વળાંક જેની છે, આધારિત છે અને તે પર અમે ક્યાં તો એક્સ અથવા ઓ સુયોજિત કરો, પરંતુ અમે નોંધ્યું છે કે અમે આ જ ઘટના સંભાળનાર વારંવાર ઉપયોગ કરી રહ્યાં છો તે બટનોની દરેક એક એક છે. , એટલે કે હું ટોચે ડાબા બટન માટે એક પદ્ધતિ ન હોય તળિયે જમણી બાજુના બટન માટે એક અલગ પદ્ધતિ છે, તેમ છતાં હું હોય તે થઈ શકે છે. કે ખરેખર સારી ડિઝાઇન નહિં હોય. હું અહીં કરી રહ્યો છું શું છે હું ખરેખર તે નક્કી કરવા માટે જઈ રહ્યો છું આ બટન દબાવવામાં કે હતી ટેગ શું છે. તમે નોંધ્યું છે કે આ નાટક પદ્ધતિ એક દલીલ લે છે. તે મોકલનાર કહેવાય છે, અને મોકલનાર શું મોકલનાર છે છે જવાની બરાબર શું ક્રિયા પર લેવામાં આવ્યો છે. જો હું બટન દબાવો, આ મોકલનાર કે UIButton પ્રયત્ન રહ્યું છે કે હું ખરેખર દબાવવામાં, કે જેથી અર્થ એ થાય કે કે UIButton ટેગ ધરાવે છે કારણ કે હું એક ટેગ બનાવી. જો હું ટેગ અંતે મેળવવા માંગો છો કે હું ફક્ત કહે કરી શકો છો હું પ્રેષક ના ટેગ કરવા માંગો છો, અને ફરી, હું માત્ર એક UIButton માટે કર્યું છે કે તે casted. હું જાણું છું કે આ મોકલનાર એક UIButton હશે થાય છે. તે હંમેશા UIButton નથી. હું, ઉદાહરણ તરીકે, આ જ ઘટના સંભાળનાર રજીસ્ટર કરી શકે છે  એક બટન છે, એક એક સ્લાઇડર માટે છે. આ કિસ્સામાં, મને ખબર છે તેઓ બધા બટનો છો, જેથી હું કહેવા જાઉં છું હું આ બટન પ્રયત્ન કરવા માંગો છો, અને પછી હું ટેગ મેળવી શકો છો, અને ટેગ માંથી હવે મને ખબર જ્યાં હું બોર્ડ ની અંદર છું. પછી હું ફક્ત ક્યાંતો X અથવા ઓ, એ બાબતનો વિમાનની મુસાફરી કરી શકો છો સેટ કરી શકો છો, તપાસ જે વગેરે, એટ જીત્યો છે. આ અત્યાર સુધી પર કોઈપણ પ્રશ્ન છે? ઠીક છે, બધી કોડ અમે ઓનલાઇન અમે ખૂબ જ પ્રવેશ મેળવવા માંગતા નહિં હોય પોસ્ટ આ ચહેરાના ટેક ટો તર્કશાસ્ત્ર, પરંતુ હવે તમે તે ખરેખર જોઈ શકો છો તમામ અમે કરી રહ્યા છીએ છે અમે આ એરે પર રહ્યાં રહ્યાં છો, તેથી અમે અહીં આંટીઓ માટે એક દંપતિ છે, અને અમે હમણાં જ જોવા સરખામણી કરી રહ્યા છીએ અમે તમામ પંક્તિઓ, અથવા જેમ સ્તંભ કંઈપણ એક મેચમાં મેચ હોય છે. ખરેખર આ એપ્લિકેશન ચલાવો, તો હું એક આ બટનોની પર ટેપ કરો કે નાટક પદ્ધતિ છોડવામાં આવી હતી, જેથી તેનો અર્થ એ કે હું હમણાં જ સેટ આ બટન એક X હોઈ, તેથી હવે આ બટન એક ઓ પ્રયત્ન કરશે, અને એમ જ, અને જેથી તે કેવી રીતે અમે આ એક પાનું એપ્લિકેશન સાથે વાર્તાલાપ શરૂ કરી રહ્યાં છો. અમે કોડ પોસ્ટ કરશો, તેથી કે વાંચી જવું મફત લાગે, દો પરંતુ હવે કેટલાક એપ્લિકેશન્સ કે જે હમણાં જ એક પાનું કરતાં વધુ છે તે વિશે વાત કરો. તરીકે ચહેરાના ટેક ટો તરીકે ઉત્તેજક હતા, iOS ની અંદર એપ્લિકેશન્સ ઘણો બહુવિધ સ્ક્રીનો સાથે વસ્તુઓ નીચે આ કવાયત પ્રકારની હોય છે. પ્રથમ ખ્યાલ કે અમે વિશે વાત કરવાની જરૂર પડશે પ્રોટોકોલ છે, અને એ પ્રોટોકોલ ફક્ત પદ્ધતિઓનો સમૂહ છે કે જે તમે વ્યાખ્યાયિત વચન કરી શકો છો. જો હું 2 પદ્ધતિઓ સાથે આ નવી પ્રોટોકોલ, આ પ્રથમ એક બનાવવા માટે, જો પરત પ્રકાર રદબાતલ છે, હું તે foo કહેવાય છે. તે કોઈ દલીલો લે છે. હું અન્ય પદ્ધતિ છે. તે પૂર્ણાંક આપે છે. હું કહેવાય તે બાર, અને તે એક દલીલ લે છે. આ તમામ પ્રોટોકોલ છે કે SomeProtocol કહેવાય છે અહીં, આ વસ્તુઓ છે કે જે કોઇ વ્યક્તિ અમલીકરણ કરી શકો છો એક સમૂહ છે. હું આ પ્રોટોકોલ ની અંદર foo શું નથી જણાવ્યું છે. તેના બદલે, મેં હમણાં જ કહી રહ્યો છું તમે foo વ્યાખ્યાયિત જો તમે કરવા માંગો છો શકે છે. જો હું દૃશ્ય નિયંત્રક બનાવી રહ્યો છું કે એક વર્ગ બનાવવા હું અંદરથી કે વર્ગ વચન ઓફ અમલ કરી શકો છો આમાંની કેટલીક પદ્ધતિઓનો, તેથી ઉદાહરણ તરીકે, જો કહેવું હવે કહે છે હું તમને એક વચન બનાવવા છું અંદર કે આ દૃશ્ય નિયંત્રક વર્ગ હું બંને foo અને બાર વ્યાખ્યાઓ હશે. કે શા માટે ઉપયોગી છે? IOS ની અંદર ઘટકો ઘણાં આ લાભ લેવા ડિઝાઇન પેટર્ન પ્રતિનિધિમંડળ કહેવાય છે, અને પ્રતિનિધિમંડળ શું કહે છે છે, ઉદાહરણ તરીકે, કે જો હું લખાણ બોક્સમાં હોય છે અને અમુક ઘટનાઓ કે મારા લખાણ બોક્સની અંદર રજીસ્ટર થઈ શકે છે, અલગ ઘટનાઓ હું શું કરી શકો બનાવવા બદલે છે, હું કહું છું કરી શકો છો આ લખાણ બોક્સની પ્રતિનિધિ કેટલાક હેતુ હશે. જ્યારે હું કહું છું કે આ એક પ્રતિનિધિ હવે એ છે કે અર્થ એ થાય કે જ્યારે પણ કેટલાક ઘટના લખાણ બોક્સમાં કરવામાં આવી છોડવામાં આવશે બદલે તેને અથવા કે કંઈપણ રજીસ્ટર કર્યા તે માત્ર પ્રતિનિધિ પર પદ્ધતિ કહી રહ્યું છે. ઉદાહરણ તરીકે, અંદર મારા લખાણ બોક્સની હું જ્યારે હું દબાવો માટે એક પદ્ધતિ છે કે તળિયે જમણી બાજુના બટન પૂર્ણ થાય, અને તેથી બદલે ઘટના સંભાળનાર હું શું કહી શકીએ રજીસ્ટર થયેલ છે લખાણ બોક્સમાં, અહીં એક પદાર્થ કે હું તમને એક પદ્ધતિ કૉલ કરવા માંગો છો છે દર વખતે કોઇ કરવામાં બટન દબાવીને, અને તેનો અર્થ એ કે જે તે પદાર્થ કેટલાક પ્રોટોકોલ અમલીકરણ છે કહે છે કે હું તે થઈ બટન ક્રિયા વ્યાખ્યાયિત વચન, કારણ કે જો તે પદ્ધતિ નક્કી કરે છે અને નથી કે તમે પૂરી પ્રેસ, પછી તે ગૂંચવણમાં જ હશે. ચાલો એક ઉદાહરણ પર એક નજર. અહીં હું ફક્ત એક લખાણ બોક્સમાં હોય છે, અને અહીં એક પર આ લખાણ બોક્સની આ જમણી બાજુએ ગુણધર્મો ના પ્રતિનિધિ છે. આ વર્ગ એક મિલકત છે. હું અહીં કર્યું શું છે હું ક્લિક કરી નિયંત્રિત, અને હું અહીં પર આ સ્પોટ પરથી ખેંચી આ દૃશ્ય નિયંત્રક, અને તે હવે આ લખાણ બોક્સની પ્રતિનિધિ કહે છે છે દૃશ્ય નિયંત્રક હશે. તેનો અર્થ એ છે કે જ્યારે કેટલાક ક્રિયાઓ થાય છે, રજીસ્ટર બદલે અલગ ઘટના હેન્ડલર્સ હું તો તમારે તેમને પ્રતિનિધિ મોકલવા માંગો છો. હવે આપણે મારા મતે નિયંત્રક પર એક નજર. આ ક. ફાઈલની અંદર હું વચન કર્યા છે. હું આ પ્રોટોકોલ ની અંદર કેટલાક પદ્ધતિઓ અમલમાં વચન કર્યા છે UITextFieldDelegate ફરી, અને કહે છે, આ માત્ર કેટલીક વસ્તુઓ કે હું અમલ પસંદ કરી શકો છો કેટલાક યાદી છે. જો હું મારો ફાઈલ એમ. અહીં આવે છે, હું એક જેવી પદ્ધતિ અમલમાં છે. હું તેને textFieldShouldReturn કહેવાય કર્યા છે કારણ કે તે શું છે તે પ્રોટોકોલ ની અંદર તરીકે ઓળખાતું હતું. અને હવે જ્યારે પણ હું કર્યું છે કે ટેક્સ્ટ ક્ષેત્ર બટન દબાવો અંદર આ છે શું કહેવાય કરો ચાલી રહ્યું છે, જેથી હું એક ઘટના સંભાળનાર ન રજીસ્ટર ન હતી. હું પ્રતિનિધિ સાથે જોડાયેલ છે, અને જ્યારે પણ આ ઘટના પકવવામાં આવે છે આ પદ્ધતિ કે જે કહેવાય આવશે છે, તેથી જો હું ઉપર અહીં આવો મારા સ્ટોરીબોર્ડ માટે અને ચલાવવા માટે તેને- જ્યારે લોડ છે અમે જોઈ શકો છો આ શું કરે છે. મારી સ્ક્રીન પર મેં 2 વસ્તુઓ હોય છે. હું આ લખાણ ક્ષેત્રમાં હોય છે, અને હું આ લેબલ હોય છે. હું માત્ર કહી રહ્યો છું હું આ લેબલની લખાણ કરવા માંગો છો ગમે તે વપરાશકર્તા લખાણ ક્ષેત્રમાં ની અંદર માં ટાઇપ કરવા માટે સમાન છે. આ આગામી અહીં વાક્ય ખાલી પદ્ધતિ કે હું ફોન કરું છું છે લખાણ ક્ષેત્ર કે જે કહે છે કે હું તમને કીબોર્ડ છુપાવવા માટે કરવા માંગો છો છે. આ ફક્ત મનસ્વી પદ્ધતિ કે એપલે પસંદ કર્યું છે. ફરીથી, પહેલાં મેં કંઈપણ હું બધું WIRE અપ હતી કર્યું છે, તેથી હું પ્રથમ ઉપર અહીં આવ્યા હતા. દેખાવ નિયંત્રક પ્રતિ હું લખાણ બોક્સમાં પર ખેંચો. હું જાઓ, અને હું અહીં જોઈ શકો છો કે હું આ લખાણ ક્ષેત્રમાં મિલકત કરી શકો છો ઉપર જુઓ નિયંત્રક અહીં થી હું મિલકત વ્યાખ્યાયિત કર્યું છે કે જે લખાણ ક્ષેત્રમાં એક IBOutlet છે. આ કહે છે કે હું આ મિલકત WIRE અપ કરી શકો છો મારા UI માં લખાણ ક્ષેત્ર છે. હવે જ્યારે હું આ બટન પર ક્લિક કરો હું લખીને શરૂ કરી શકો છો. હવે જો હું પૂર્ણ કરો બટન ક્લિક કરો આ ગોળીબાર રહ્યું છે એક ઇવેન્ટ કે હું હવે પ્રતિભાવ આપી શકો છો. કોઈ ઘટના હેન્ડલર્સ. કે કેવી રીતે હું હમણાં જ તે થઈ બટન પર પ્રતિક્રિયા. અર્થમાં બનાવીએ? આ એક ડિઝાઈન પેટર્ન જે તમે ક્યારેય જાતે શોધી શકે નથી તમારા પોતાના પ્રોટોકોલ બનાવી રહ્યા હોય, પરંતુ ફક્ત ખબર છે કે અમુક વિવિધ iOS ઘટકો અલગ અલગ રીતે ઘટનાઓ રજીસ્ટર કરો. બટનો, ઉદાહરણ તરીકે, તે IBActions વાપરો. લખાણ ક્ષેત્રો, બીજી બાજુ, માટે પ્રતિનિધિઓ ઉપયોગ થશે. અમે જુઓ અને તમે જે દસ્તાવેજીકરણ કે અંદર તમામ નજર કરી શકે છે. જો કે, ત્યાં ખરેખર UI સામગ્રી એક ટન તમે iOS માં સમાયેલ છે, તેથી, ઉદાહરણ તરીકે, જે રીતે હું કરી હતી કે નીચે જમણા ખૂણે થાય કહી છે મને આ લખાણ ક્ષેત્રમાં પસંદ કરેલ હોય. હું ઉપર અહીં આવ્યા હતા. હું નીચે એક બીટ ટીપણાની પેઠે વીંટેલું માટે કી પરત, અને હું ખરેખર વસ્તુઓ સંપૂર્ણ સમૂહ આ બનાવવા કરી શકો છો, જો કે હું માંગો છો કે કહેવા માટે કટોકટી બદલે હું કે શું છે, જે સંપૂર્ણપણે રેન્ડમ છે કહી, અને હું શા માટે ત્યાં કટોકટી આંતરિક કૉલ કરો બટન છે ખબર નહિં હોય, પરંતુ, તે ખરેખર નાના પત્રો ઇમરજન્સી કોલ કહે છે. ત્યાં તમે જાઓ. ચોક્કસપણે iOS આ વિવિધ વિકલ્પો બધા અન્વેષણ કરો. પ્રતિનિધિઓ પર કોઈપણ પ્રશ્ન છે? ફરીથી, ફક્ત એક રસપ્રદ ડિઝાઈન પેટર્ન કે તમે પરિચિત પ્રયત્ન કરીશું. ઠીક છે, ચાલો આગામી ટેબલ દૃશ્યો પર એક નજર. ટેબલ દૃશ્ય મૂળભૂત વસ્તુઓ છે કે જે યાદી છે કે જે iOS માં સ્થળ પર તમામ છે. જ્યારે તમે તમારા તમામ સંપર્કો દ્વારા ફ્લિપિંગ કરી રહ્યાં છો, તમે શોધી રહ્યા છો આ સુયોજિત પાનું, અને વસ્તુઓ યાદી તે પ્રકારના એક કોષ્ટક દૃશ્ય કહેવાય છે. IOS માં એક કોષ્ટક દૃશ્ય અમલ ખૂબ સરળ છે. તેના બદલે એક વર્ગ છે કે જે UIViewController ઉતરી બનાવવા જેમ અમે પહેલાં અમે ફક્ત બદલે કહેવું જરૂર કર્યું છે બધું એક UIViewController હું કરવા માંગો છો નથી, હું બધું UITableViewController હું કરવા માંગો છો નથી કહેવું, કે જેથી માત્ર કેટલીક વધારાની વસ્તુઓ છે કે જે સંપૂર્ણપણે આપણા માટે કરવામાં આવે છે ઉમેરે છે. અમે ખૂબ જ મારાથી ટેબલ ની અંદર જગ્યાએ ભરવા માટે કહો થોડું કરવાની જરૂર છે. ક્રમમાં ટેબલ હું કેટલાક પ્રશ્નોના જવાબ જરૂર પ્રદર્શિત કરવા માટે. પ્રથમ પ્રશ્ન મને જવાબ આપવાની જરૂર છે કેટલા વિભાગો કોષ્ટકમાં છે? જ્યારે તમે તમારા સંપર્કો એપ્લિકેશન મારફતે ફ્લિપિંગ રહ્યાં છો અને તમે નોટિસ પડશે કે તે પ્રકારની છે આ જેમ દ્વારા આયોજીત, પછી તમે bs હોય છે, અને તમે તે થોડી પેટા હેડર હોય છે. તે દરેક વિભાગને કહેવામાં આવે છે. તમે કરી શકો છો અથવા આ જરૂર ન હોઈ શકે. પ્રથમ વસ્તુ તમે કરવાની જરૂર છે એક પદ્ધતિ અમલમાં numberOfSectionsInTableView: tableView કહેવાય છે. કે ફક્ત આપે કેટલા વિભાગો તમે હોય છે, તેથી આ કહેવું શકે એક આપશે જો તમે એક મોટા ટેબલ દૃશ્ય છે. આગામી પ્રશ્ન છે કે iOS જાણવા જરૂર છે કેટલા પંક્તિઓ તમારી પાસે છે? ઉદાહરણ તરીકે, તમે એક કોષ્ટક દૃશ્ય દ્વારા ફ્લિપિંગ કરી રહ્યાં છો. તમે ગાયન એક નિશ્ચિત સંખ્યા અથવા તમે શોધી રહ્યાં છો તે સંપર્કો એક નિશ્ચિત સંખ્યા હોય છે. જો તમે મને કરશો, અલબત્ત, ઘણાં કે નથી, અને જેથી તે કેવી રીતે iOS જાણે કેટલા કોશિકાઓ પ્રદર્શિત કરવા માટે. ફરીથી, આ 3 વળતર કંઈક કહી શકે છે. મારા ટેબલ દૃશ્ય 3 પંક્તિઓ છે. છેલ્લે, iOS જાણવા દરેક સેલ શું લાગે જરૂર છે, તેથી તે ખરેખર કરવા ચાલી રહ્યું છે શું છે અને આ પદ્ધતિ નીચે અહીં કહી, આ tableView: cellForRowAtIndexPath. તે માટે તમારા ટેબલ ની અંદર દરેક એક કોષ પર આ પદ્ધતિ કહી રહ્યું છે. તે કેવી રીતે ખબર નથી કેટલી વખત તેને કૉલ કરવા માટે? સારું, તમે તે વિભાગમાં પંક્તિઓ સંખ્યા અંદર જણાવ્યું હતું. અમે અમારી કોશિકાઓ દરેક પર આ કૉલ જઈ રહ્યાં છો, અને આ અંદર છે જ્યાં તમે ખરેખર જેવી વસ્તુઓ કરી શકો છો લખાણ સુયોજિત અથવા તમે કહી જમણી બાજુ પર થોડો વાદળી બટન શું કરે છે. આ કોશિકાઓ મેળવવાને પેટર્ન, અમે આ પદ્ધતિ વાપરી રહ્યા છીએ dequeueReusableCellWithIdentifier કહેવાય છે. ઉદ્દેશ C-વાસ્તવમાં તેમની પદ્ધતિ નામોની હાસ્યાસ્પદ લંબાઈ માટે ખૂબ જાણીતા છે, અને આ ખરેખર બિંદુ ઉદાહરણ એક સરસ કિસ્સો છે. આ પદ્ધતિ કરે છે શું આ માત્ર કહે છે હું તમને મને સેલ આપવા માંગો છો. ફક્ત iOS વસ્તુ. જો તમે તમારા આઇપોડ પર 100,000 ગાયન કંઈક છે iOS કરવા નથી માંગતા નથી શું છે 100,000 કોશિકાઓ ફાળવો, કારણ કે જો તમે તમારા યાદીમાં ટોચ પર છો, તમે ખરેખર કરવા મેમરીને ફાળવવા જરૂર કોષ કે 99.000 નીચે પંક્તિઓ છે માટે? ના, કારણ કે જેમ તમે સરકાવવાથી રહ્યાં છો અને તમે આ કરી શકો છો ફાળવવા તરીકે તમે સાથે જાઓ પ્રકારની. આ તમારા માટે કરવામાં આવે છે. તમે તે બધા મૂર્ખ કામગીરી સામગ્રી વિશેની ચિંતા નથી. બધા તમે કહો કે તમે આ પદ્ધતિ dequeueReusableCellWithIdentifier કહી છે, અને આ કહે છે, ઠીક, જો તમે હું તમારા માટે એક નવો સેલ બનાવવા જઈ રહ્યો છું કરવાની જરૂર છે. પરંતુ જો તમે કોષ્ટક તળિયે છો અને તમે પહેલાથી જ કેટલાક કોષો ફાળવવામાં કર્યા છે કોષ્ટકની ઉપરની કે તમે ખરેખર જઈ રહ્યાં છો નજીકના સમયમાં જરૂર નથી અંતે હું તમને એક એક નવું allocating બદલે પાછા તે આપવા જઈ રહ્યો છું, અને તેથી આ એક સરસ પ્રદર્શન ચિંતાનો વિષય છે. તમે કોષો જાતે ફાળવી નથી. જે તમને આપવા પાછળ એક સેલ ચાલી રહ્યું છે. તે તમે જે કોષ પદાર્થ પરત ચાલી રહ્યું છે. એકવાર તમે સેલ પદાર્થ તમે સામગ્રી તે કરવા કરી શકો છો. તમે આ લખાણ લેબલ કહેવાય મિલકત સાથે કોશિકાના લખાણ સુયોજિત કરી શકો છો. તમે જમણી બાજુ અથવા અમુક અન્ય રેન્ડમ સામગ્રી પર તીર ઉમેરી શકો છો આ અન્ય મિલકત સાથે accessoryType કહેવાય છે, અને તેથી અને તેથી. ચાલો ખરેખર એક કોષ્ટક દૃશ્ય હવે અમલીકરણ પર એક નજર. જ્યારે હું આ પ્રોજેક્ટ બનાવનાર તેના બદલે એક દૃશ્ય અરજી કહેતા કરતાં હું ખરેખર પર અહીં આવ્યા મુખ્ય-વિગતવાર કાર્યક્રમ છે, અને તેથી મૂળભૂત આ મેલ એપ્લિકેશન અનુલક્ષે ડાબી પર ટેબલ જુઓ અને પછી જમણી બાજુ પર સમાવિષ્ટો સાથે iPad પર. આઇપોડ અથવા આઇફોન પર આ એક ટેબલ દૃશ્ય અનુલક્ષે રહ્યું છે. કે જ્યાં હું મારા સ્ટાર્ટર કોડ મળ્યો હતો. ચાલો પ્રથમ સ્ટોરીબોર્ડ પર એક નજર. આ બધા મારા માટે કરવામાં આવ્યું હતું, જે મૂળભૂત રીતે બનાવેલ છે. આ સંશોધક પટ્ટી મને બતાવ્યું ઉદાહરણ સેલ શું દેખાશે શકે છે, અને હું ડબલ આ ક્લિક કરો, કરી શકો છો શીર્ષક બદલો. કોઈપણ અન્ય UI ચિંતા હું ત્યાં સંભાળી શકે છે. હેડર ફાઈલ ખરેખર સરળ લાગે છે. કહેતા આ UIViewController છે બદલે આપણે હવે કહી રહ્યાં છે કે આ એક છે TableViewController, તેથી આપણે જાણીએ છીએ કે અમે તે તમામ ટેબલ પદ્ધતિઓ કૉલ કરવા માંગો છો. આગામી હું એક મિલકત કે પ્રતિનિધિત્વ કરવાના છે બનાવવા માંગો છો મારા ટેબલ ની અંદર જે વસ્તુઓ. આ ટેબલ આપખુદ પ્રદર્શિત રહ્યું છે ફળ યાદી છે, અને તેથી હું કેટલાક એરે બનાવવાની જરૂર છે જેમાં હું ફળ દાખલ કરી શકો છો. મારા અમલીકરણ ફાઈલ પ્રથમ વસ્તુ ની અંદર હું કરવા માંગો છો છે મને ખાતરી છે કે હું આ એરે પ્રારંભ બનાવવા માંગો છો. હું alloc આરંભ જણાવ્યું હતું કે, મારા ફળ એરે બનાવનાર, અને હું 4 વસ્તુઓ તેને ઉમેરીને છું, એક જે વધારે અન્ય 3 કરતાં વિવાદાસ્પદ છે. અને હવે હું 4 કદ ઝાકઝમાળ છે. અમે તેને ધ્રુજારી કરી રહ્યાં છો CS50 માં. હવે હું 4 કદ ઝાકઝમાળ છે. હવે હું આ પ્રશ્નોનો જવાબ આપવા શરૂ જાઉં છું, વાસ્તવમાં, અને જ્યારે હું આ એપ્લિકેશન બનાવનાર આ તમામ પહેલેથી જ મારા માટે કરવામાં આવ્યું હતું. હું બહાર ટેબલ દૃશ્યમાં વિભાગો સંખ્યા ટાઇપ નથી. તે પહેલાથી જ ત્યાં હતો, અને હું બ્લેન્ક્સનો ભરતા છું. કેટલા વિભાગો હું છે? એક. બધા થાય છે. કેટલી પંક્તિઓ હું છે? વેલ, હું દરેક ફળ માટે એક પંક્તિ હોય છે, જેથી આ ગણક કોઈપણ એરે કહે મોટું કેવી રીતે તે એક મિલકત છે? કે કેટલા પંક્તિઓ હું હોય છે. છેલ્લે, હું કહેવા દરેક સેલ શું લાગતું નથી જરૂર છે? હું dequeueReusableCellWithIdentifier કહેવું જાઉં છું. ફરીથી, આ પહેલેથી જ મારા માટે લખવામાં આવ્યું હતું. હું આ જાતે કરી ન હોય અને હું પાછી મેળવવા માંગો છો આ સ્થાન પર આ કોષ. યાદ રાખો કે અમે દરેક એક કોશિકા પર આ જ પદ્ધતિ કૉલ કરી રહ્યાં છો, અને આ અહીં દલીલ, આ indexPath દલીલ, કહે પંક્તિ શું હું સાઇન છું જો હું indexPath.row અહીં કહેવું નીચે આ 0 હોય, તો પછી તેને 1 હોય, તો પછી તેને 2 હશે, અને આ છે તેથી હું જાણું છું સેલ શું હું હાલમાં પ્રદર્શિત છું. હું કોશિકાના text આ textLabel મિલકત મદદથી સેટ કરવા માંગો છો મારા ફળ એરે અંદર જાઓ અને વિચાર દરેક પંક્તિ ને અનુરૂપ ઑબ્જેક્ટ. જો આ એક સ્ટ્રિંગ છે, હું હવે સુયોજિત છું લખાણ એ શબ્દમાળાને મિલકત. હું એક અન્ય વસ્તુ કરી શકો છો. હું પણ કોશિકાઓ દરેક પર એક ઘટના સંભાળનાર રજીસ્ટર કરી શકો છો, તેથી જ્યારે હું આ કોશિકાઓના દરેક ટૅપ આ didSelectRowAtIndexPath, આ મારા માટે કહેવાય રહ્યું છે, તેથી આ વ્યાખ્યાયિત કરીને ફક્ત હું હવે હેન્ડલ શું થાય છે કરી શકો છો જ્યારે તમે સેલ ટૅપ અને ફરી, અમે જેમાં સેલ ટેપ કરવામાં આવ્યું હતું પસાર કરી રહ્યાં છે જેથી અમે અમારા કોષો બધા માટે આ જ ઘટના સંભાળનાર ફરી ઉપયોગ કરી શકો છો. ફરીથી, આ કંઈક iOS મારા માટે કરી છે. ચાલો અન્ય નકામી પોપઅપ પ્રદર્શિત કે ફક્ત કહે તમે કંઈક જ્યાં કે કંઈક લેવામાં છે પંક્તિ પદાર્થ હશે. જ્યારે હું આ ચલાવો, હું આ સરસ ટેબલ દૃશ્ય હોય જાઉં છું આ ફળ દરેક માટે એક પંક્તિ સાથે, અને જો હું એક ટેપ તે મને કહે શું થયું. અર્થમાં બનાવીએ? ચાલો થોડો વધુ એક એપ્લિકેશન જટીલ બીલ્ડ કરવા, તરીકે ક્લિક કરવાનું તમને ટમેટા લેવામાં જેટલો છે. આ storyboarding વિશે સરસ ભાગ છે તે માત્ર અમને ડિઝાઈન સ્ક્રીનો વ્યક્તિગત રીતે મદદ નથી ચાલી રહ્યું છે, તે પણ અમને મદદ મળીને અમારા સમગ્ર એપ્લિકેશન ગૂંચ ચાલી રહ્યું છે, જેથી અંતિમ એપ્લિકેશન અમે મકાન હશો આ સરસ રમતો સમાચાર વાચક છે, અને તેથી તે માટે ઘણા સ્ક્રીનો છે ચાલી રહ્યું છે, અને તેથી હું ખરેખર પ્રતિનિધિત્વ કરી શકે છે સ્ટોરીબોર્ડ પર આ બહુવિધ સ્ક્રીનો દરેક, અને હું ઝૂમ અને ઊંચા સ્તર માંથી મારા એપ્લિકેશન જોઈ શકો છો. ક્રમમાં મારા સ્ટોરીબોર્ડ એક નવી તત્વ અંદર બનાવવા માટે તે ખરેખર ઈન્ટરફેસ બિલ્ડર ની અંદર સરળ છે. જો હું આ બીજા સ્ક્રીન ઍડ કરવા માંગો છો, ઉદાહરણ તરીકે, હું પ્રથમ ચૂંટવું ઝૂમ કે એપલે ખૂબ જ પ્રેમ કરે છે સાથે બહાર ઝૂમ કરી શકો છો, અને નીચે અહીં પહેલાં હું એક બટન શોધવા માટે અને હું ખેંચો અને એક બટન છોડો જો હું એક નવા સ્ક્રીન બનાવવા માંગો છો હું વાસ્તવમાં માત્ર ખેંચો અને છોડો કરી શકો છો સમગ્ર દૃશ્ય નિયંત્રક, તેથી જો હું આ ચુંટો, તે અહીં ખેંચો પર, હેય, ત્યાં બીજી સ્ક્રીન છે, અને તેથી હવે આ જ સ્ટોરીબોર્ડ ફાઈલ મદદથી હું મારા એપ્લિકેશન ની અંદર સ્ક્રીનો બધી શકો છો, અને હું ઝૂમ કરી શકો છો જુઓ અને તેઓ કેવી રીતે સંચાર કર્યો. આ હજુ સુધી વાર્તાલાપ કરશે. માર્ગ કે આ 2 સ્ક્રીનો વાર્તાલાપ છે તમે સંબંધો વ્યાખ્યાયિત કરે છે. તમે મૂળભૂત આ સ્ક્રીન કહેવું કરી શકો છો, જ્યારે તમે આ બટન દબાવો, હું તમે આ નવા સ્ક્રીન પર સ્લાઇડ કરવા માંગો છો. તેનો અર્થ એ કે ત્યાં વચ્ચે સંબંધ આ પ્રકારની છે  પ્રથમ સ્ક્રીનમાં અને બીજા સ્ક્રીન. તમે મૂળભૂત કે બટન બીજા સ્ક્રીન પર એક તીર પડશે કહે છે કે જ્યારે તમે આ બટન દબાવો કે જ્યાં હું જવા માંગો છો. જેમ આપણે ક્લિક કર્યું અને નિયંત્રણ કરવા માટે તે આઉટલેટ્સ વ્યાખ્યાયિત ખેંચ્યાં અમે એ જ વસ્તુ કરવા માટે આ segues વ્યાખ્યાયિત રહ્યા છીએ. અમે તે માટે એક ઉદાહરણ જુઓ, અને પડશે આપણે ખરેખર સંક્રમણ પહેલા એક સ્ક્રીન બીજા iOS પર્યાપ્ત સરસ આ પદ્ધતિ કહી છે prepareForSegue કહેવાય છે, અને આ છે જ્યાં અમે શરૂ કરી શકો છો એક એપ્લિકેશન બીજી માહિતી મોકલી. ઉદાહરણ અમે કરી રહ્યાં છો તે જોવા માટે મૂળભૂત રીતે અમને પરવાનગી આપશે માટે લીગ અને વિભાગો દ્વારા બેઝબોલ ટીમો ફિલ્ટર કરે છે. હું જ્યારે લીગ પસંદ કરો, ઉદાહરણ તરીકે, હું સંક્રમણ માટે કરવા માંગો છો મારી આગળની સ્ક્રીન જ્યાં હું વિભાગો તમામ પ્રદર્શિત કરી શકો છો કે લીગ અથવા બધા અલગ અલગ ટીમો છે. હું એ સ્ક્રીન ટીમો શું તમે પ્રદર્શિત કરીશું મોકલવાની જરૂર છે. આમ કરવા માટે કે હું આ પદ્ધતિ લાભ લેવા જાઉં છું અહીં. છેલ્લે, માત્ર iOS પર રેન્ડમ બિંદુ. જો તમે માહિતી સંગ્રહવા માંગો છો ત્યાં આ કોર માહિતી તરીકે ઓળખાય વાત છે, જે ખરેખર સાથે કામ જટીલ પ્રકારની છે. તમે પણ એસક્યુએલ વાપરવા માટે માહિતી સ્ટોર કરી શકો છો, , જે ફરીથી વધુ જટિલ બાજુ પર સરસ પરંતુ પ્રકારની છે સાથે કામ કરે છે, પરંતુ iOS પણ આ ખરેખર ઠંડી મિલકત યાદીઓ વસ્તુઓ તરીકે ઓળખાય છે આધાર આપે છે, અને એક મિલકત સૂચિ ખાલી ફાઈલ કે જે કી કિંમત જોડીઓને પ્રતિનિધિત્વ કરે છે. તમે કીઓની યાદી વ્યાખ્યાયિત કરવા માટે, અને તમે કહી આ કી માટે કોઈ અરે હોવો રહ્યું છે. આ કી શબ્દમાળા હોવી રહ્યું છે, અને મૂળભૂત કંઈપણ તમે શું કરી શકો છો JSON માં તમે અંદર મિલકત યાદી કરી શકો છો, અને તેથી આ ખરેખર સરસ રીતે અમને અમુક માહિતી સાથે કામ કરવા માટે પરવાનગી આપે છે. ઉદાહરણ તરીકે, હું આ Teams.plist કે હું બનાવનાર હોય છે. હું એક નવા plist ફાઈલ છે, અને હું નીચે વ્યાયામ કરી શકો છો. આ એક શબ્દકોશ છે, આ એક શબ્દકોશ, આ શબ્દમાળાઓ છે, અને તેથી આ એક JSON દસ્તાવેજ એક સરસ ગ્રાફિકલ રજૂઆત છે અથવા માત્ર કી કિંમત જોડીઓને સમૂહ, અને તેથી આ માહિતી એ છે કે હું મારી એપ્લિકેશન ની અંદર સાથે કામ કરવામાં આવશે. ચાલો પ્રથમ ઉપર અહીં આવે છે. અમે પુષ્કળ વધુ ફાઇલો હવે હોય છે. દો પરંતુ પ્રથમ પર સ્ટોરીબોર્ડ અહીં આવે છે. સ્ટોરીબોર્ડ અહીં જો હું ઝૂમ કરી શકો છો આઉટ આપણે હવે જુઓ કે આ મારા એપ્લિકેશનના ફ્લો છે. હું પ્રથમ આ સ્ક્રીન પર શરૂ જાઉં છું. હું આ સ્ક્રીન પર નીચે શારડી જાઉં છું, અને હું આ સ્ક્રીન પર નીચે શારડી જાઉં છું, અને અમે અહીં જોઈ શકો છો કે હું પ્રકારની જો આ આસપાસ અમે આ તીર અહીં અહીં જવા છે એક ખસેડવા માટે, અને જે રીતે હું કે તીર વ્યાખ્યાયિત હતો જો હું થોડો ઝૂમ, અને જો હું આ દૃશ્ય નિયંત્રક પર આવે છે, અને અહીં સેલ, અને હું એમ કહે માંગો છો જ્યારે તમે સેલ ટૅપ હું તમે અન્ય સ્ક્રીન સ્લાઇડ કરવા માંગો છો. હું ફક્ત નીચે નિયંત્રણ પકડી શકે છે, થોડો ઉપર સ્ક્રોલ, નીચે નિયંત્રણ ધરાવે છે, આ કોષ ખેંચો પર અને નહીં. અને અમે અહીં ઉપર કહેવું શું સંક્રમણ કે જે તમે ઉપયોગ કરવા માંગો છો છે? શું તમે તે સ્લાઇડ વસ્તુ કે દબાણ કહેવાય છે ઉપયોગ કરવા માંગો છો? શું તમે નીચે માંથી સ્લાઇડ ઉપર માંગો છો? કે વાહનોમાં કહેવાય છે. અને એક વખત જ્યારે હું એક આ બટન પર ક્લિક કરો, તો તે મારા માટે આ તીર દોરવા ચાલી રહ્યું છે, અને તે અર્થ એ થાય કે હું ખરેખર નિયંત્રિત કર્યું છે શું થાય છે જ્યારે હું આ બટન ગ્રાફિકલી દબાવો. હું કોઈપણ ખરેખર એક સ્ક્રીન ના આગામી એક સ્લાઇડ કોડ નથી લખી ન હતી. હું આ દૃષ્ટિની ઈન્ટરફેસ બિલ્ડર ની અંદર વ્યાખ્યાયિત થયેલ છે. જો હું આ તીર પર ક્લિક કરો, અમે જોઈ શકો છો કે હું આ વાત એ નામ આપ્યું હતું. હું તેને showDivisions, અને આ છે કે જેથી મને ખબર કરી શકો છો સંક્રમણ શું થાય છે તે વિશે છે, અને અમે માત્ર એક સેકન્ડમાં શા માટે જોઈ શકશો. કે કેવી રીતે હું મારા એપ્લિકેશનમાં વિવિધ સ્ક્રીનો વાયર્ડ કર્યું છે. જો આ એક છે, ઉદાહરણ તરીકે બટન બદલે એક કોષ્ટક દૃશ્ય હતા હું બટન પર ક્લિક કરો નિયંત્રિત, આગળની સ્ક્રીન પર ખેંચો શકે છે, અને તે કેવી રીતે હું સંશોધક રીતે કરી શકે છે. ખરેખર ઝડપથી, જો અમે MasterViewController આવે છે, ફરીથી, અમે ફક્ત વસ્તુઓ યાદી વ્યાખ્યાયિત જઈ રહ્યાં છો કે ટેબલ દૃશ્ય પ્રદર્શિત કરવામાં આવશે. અહીં હું કહી રહ્યો છું હું કે જે તમને plist ફાઈલ લેવા માટે કરવા માંગો છો, અને હું તો તમે તેને લાવવા માટે એક શબ્દકોશ માં કરવા માંગો છો, અને એકવાર તમે તે શબ્દકોશ છે, હું તે જ પ્રશ્નો ફરી જવાબ જાઉં છું. અહીં વિભાગોની સંખ્યા છે. એક, ત્યાં દરેક લીગ માટે એક પંક્તિ છે, અને દરેક કોષની લખાણ છે ક્યાં તો પ્રથમ, પ્રથમ લીગ, બીજા લીગ, અને તેથી પ્રયત્ન કરીશું. છેલ્લે, હું આ પદ્ધતિ છે કે અમે માત્ર prepareForSegue કહેવાય હતો ઉપયોગ જાઉં છું, અને આ પદ્ધતિ છે કે જે ઉત્તેજિત કરી રહ્યું છે જ્યારે હું ક્લિક કરો એક તે પંક્તિઓ પર અને તેથી કે સંક્રમણ સક્રિય કે હું તીર સાથે સુયોજિત કરો. આ કહેતા છે કે હું બહુવિધ કરી શકો છો એક સ્ક્રીન બીજા સંબંધો. જો હું 2 બટન ધરાવે છે અને દરેક બટન તમે એક અલગ સ્ક્રીન પર લઈ જશે હું દરેક બટન માટે 2 segues, 1 હોય જાઉં છું. પરંતુ આ prepareForSegue છે, ફરીથી, ફરીથી વપરાશમાં હશે વિવિધ સંબંધો દરેક માટે છે, કે જેથી અર્થ એ છે કે હું એક રસ્તો જરૂર ઓળખવા જો તમે પ્રથમ બટન દબાવો અથવા તો તમે બીજી બટન દબાવો છે. યાદ રાખો કે જ્યારે હું segue એક નામ, આ showDivisions આપ્યું, કે કેવી રીતે હવે મને ખબર છે કે આ segue કે સક્રિય કરવામાં આવ્યું હતું. બધા મને કરવા માંગો છો છે હું કહેવા માંગો છો હું બહાર આકૃતિ હું શું માત્ર હિટ કરવા માંગો છો, અને તેથી કે જે, હું કહી શકીએ હું પસંદ પંક્તિ માટે indexPath માંગો છો, આ indexPath યાદ માત્ર કહે છે જ્યાં હું ફક્ત ક્લિક થાય, અને પછી હું કહેવા હું બહાર આકૃતિ જ્યાં હું જાઉં છું કરવા માંગો છો માંગો છો. આ destinationViewController કે, segue એક મિલકત છે. કે સ્ક્રીન હું જાઉં છું છે, તેથી હું જાણું છું કે સ્ક્રીન હું જાઉં છું DivisionsViewController કહેવાય છે કારણ કે હું કે વર્ગ બનાવનાર, અને તેથી હવે જો હું d.divisions કહેવું હું હવે દૃશ્ય નિયંત્રક હું તેમની પાસે જવા વિશે છું એક મિલકત સુયોજિત છું. આ રીતે હું એક સ્ક્રીન પરથી માહિતી અન્ય સ્ક્રીન પર મોકલવા છું. માત્ર આ DivisionsViewController જોઈ તમે અહીં જોઈ શકો છો કે જે ક. ફાઈલમાં ત્યાં કે મિલકત વિભાગો છે, અને કે હું શું મૂળભૂત રચવાનું છું, જેથી તે કેવી રીતે હું જાણું છું કે હું અનુરૂપ વિભાગો દર્શાવી રહ્યો છું લીગ કે હું ક્લિક થાય, અને ફરી, વાસ્તવિક ટેબલ દૃશ્ય ખૂબ જ ખૂબ લાગે છે, માત્ર તે જવાબ 3 સરળ તેમજ પ્રશ્નો ઓળખવા શું થાય છે જ્યારે તમે આગળની સ્ક્રીન પર ખસેડો. જસ્ટ અહીં અન્ય વસ્તુઓ એક દંપતિ. તમે ટોચ પર અહીં નોંધ્યું છે કે બદલે કહેતા # સમાવેશ થાય છે હવે હું કહી રહ્યો છું # આયાત કરો. આ માત્ર એક વસ્તુ ઉદ્દેશ C-છે. આયાત મૂળભૂત સમાવેશ થાય છે એક NICER આવૃત્તિ છે, અને, ઉદાહરણ તરીકે, અમે જાણવા માગીએ વર્ગ શું છે જરૂર છે, તેથી હું ફક્ત DivisionsViewController કહી શકો છો. જો અમે અમારી સી. ફાઈલની standardio.c અંદર ન hashtag નહોતી આ કમ્પાઈલર કોઈ વિચાર શું printf હતી. તેવી જ રીતે, જો હું DivisionsViewController આયાત નથી આ કમ્પાઈલર ખરેખર કોઈ વિચાર એક DivisionsViewController શું છે. જસ્ટ ખાતરી કરો કે તમારી અલગ છે. મીટર ફાઈલોની અંદર તમે આયાત કરવા માટે ખાતરી કરો કે બનાવવા લાગતાવળગતા. ક ફાઈલો કે જેથી કમ્પાઇલર જાણે શું થઈ રહ્યું છે. છેલ્લે, એપલ શું આખરે કેટલાક વેબ દૃશ્ય મદદથી માહિતી થયેલ છે દર્શાવે નહિં, અને તેથી એક વેબ દૃશ્ય એક પદાર્થ કે જેમાં તમે એમ્બેડ કરી શકે છે તમારી એપ્લિકેશન ની અંદર થોડો વેબ બ્રાઉઝર. બધા તમારે તમારું વેબ બ્રાઉઝર પર URL સપ્લાય કરવામાં આવે છે, તેથી હું mlb.mlb.com પર જાઓ કરવા માંગો છો, અને આ રીતે હું દરેક ટીમ માટે ઘર પાનું ઍક્સેસ કરી શકો છો, અને તેથી આ URL માં પસાર કરીને વેબ દૃશ્ય મારા માટે આ પ્રદર્શિત કરી શકો છો અને હું આસપાસ બ્રાઉઝ કરી શકો છો, અને સિમ્યુલેટર એક કે દ્વારા વપરાશમાં છે. હવે આ મારું plist હતી. જો હું આ બટન પર ક્લિક કરો અને આ પણ મારું plist આવ્યા છે, અને આ સ્લાઇડિંગ નિયંત્રિત કરવામાં આવી હતી તે segues વ્યાખ્યાયિત કરીને. હું આ બટન પર ક્લિક કરો અને એક વધુ, અને હવે અહીં મારા UIWebView કે જેથી માત્ર છે, અહીં URL માટે વેબસાઇટ કે હું માત્ર જડિત છે, અને હું ઉન્મત્ત કંઈપણ હેન્ડલ ન હતી. આ રીતે વેબ પૃષ્ઠ પ્રદર્શિત કરવા માટે. આ અહીં બટન જેવી વસ્તુઓ પણ મને આપવામાં આવે છે તદ્દન મફત કારણ કે હું આ segues મદદથી સંબંધો વ્યાખ્યાયિત કર્યું છે. કોઈપણ પ્રશ્ન છે? યાહ. [વિદ્યાર્થી] તેથી જ્યારે તમે alloc વાપરવા માટે, મફત કંઈપણ તમને ક્યારેય છે? બરાબર, જ્યારે તમે alloc અને init કૉલ તમે તેને મુક્ત નથી. આઇઓએસ માટે તમે કે તમામ હેન્ડલ રહ્યું છે. તે અદભૂત છે, અને તમે કોઈપણ નિયમો ન તોડી રહ્યા છો. યાહ. [વિદ્યાર્થી] જો તમે વધુ ટીમો છે કે જે સ્ક્રીન પર ફિટ કરી શકે સમાવેશ થાય હતા, તે આપોઆપ સ્ક્રોલ વિકલ્પ રહેશે, અથવા એ છે કે કંઈક તમે ઉમેરવાની જરૂર? બરાબર, જો હું વધુ ટીમો હતી, ઉદાહરણ તરીકે, તે આપમેળે હેન્ડલ કરશે મારા માટે સરકાવનાર, અને તમામ કામગીરી ચિંતા વિશાળ ટેબલ સાથે પણ મને માટે સંપૂર્ણપણે નિયંત્રિત. અન્ય પ્રશ્નો છે? આ કોડ બધી પોસ્ટ કરવામાં રહ્યું છે. અમે આ પ્રકારના વધુ નાના વિગતો થોડો ઉપર glossed, પરંતુ જેવી વસ્તુઓ વેબ દેખાવ માટે કેટલાક ગુણધર્મો સુયોજિત ફક્ત વસ્તુઓ છે કે જે તમે એપલની દસ્તાવેજીકરણ બ્રાઉઝ કરીને મેળવી શકો છો, જે ખરેખર છે, ખરેખર સરસ રીતે બહાર નાખ્યો. તેઓ નમૂનો એપ્લિકેશન્સ ઘણો અને ઉપયોગો ઉદાહરણ છે વિવિધ API નો સમાવેશ થાય છે, તેથી ચોક્કસપણે તમે કરી શકો છો જો તે વાંચી જવું. જસ્ટ કેટલીક મદદરૂપ કડીઓ તમે પર એક નજર શકો છો. આ અમુક હાથમાં દસ્તાવેજીકરણ માર્ગદર્શનો છે. URL ને ભારે છે, તેથી તેઓ ટૂંકા કરી રહ્યાં છો. આ પ્રથમ એક દસ્તાવેજીકરણ સમગ્ર પુસ્તકાલય છે. ત્યાં થોડી શોધ બાર છે, તેથી જો તમે લખેલું બટન શરૂ તે તમને બધી વસ્તુઓ તમને એક બટન સાથે કરી શકો વિશે તમામ માહિતી આપવી શરૂ થશે. હું પણ કોષ્ટક જુઓ પ્રોગ્રામિંગ માર્ગદર્શન નો સમાવેશ કર્યો છે. તે ખૂબ વધુ વિગતવાર ટેબલ દૃશ્યો સંભાળે છે, કેવી રીતે વસ્તુઓ કરવું જેવી ગતિશીલ કોષો અથવા ફેરફાર કોશિકાઓ ઉમેરવા અથવા તેને દૂર કરો. ત્યાં નમૂના એપ્લિકેશન્સ ઓફ એપલ લોટ કે તમે બતાવવા માટે કે શું કેવી રીતે કરશે છે, અને છેલ્લે, આ છેલ્લા એક હ્યુમન ઈન્ટરફેસ માર્ગદર્શિકા છે, અને આ મૂળભૂત યુઆઇ ઘટકો કેટલાક ચર્ચા છે, જેવી બાબતો એક બટન છે જે 4 પિક્સેલ 4 પિક્સેલ્સ નથી કરતી. કે ખરાબ વિચાર છે, અને અન્ય વસ્તુઓ છે કે જે એપલ તમે ઇચ્છે છે સારી ડિઝાઇન પ્રોત્સાહિત કરીએ છીએ. કોઈપણ છેલ્લા પહેલાં અમે સમાપ્ત પ્રશ્નો છે? તમામ હક, ચોક્કસપણે ચર્ચા કરવા પર ખાસ લેબલો હશે જઈને-we're માટે મફત લાગે. અમે એક iOS પડશે, તેથી ચોક્કસપણે કે ઉપયોગ કરે છે મફત લાગે. જો તમે પ્રોજેક્ટ પર તમારા સહપાઠીઓને સાથે કામ કરવા માંગો છો મદદ અથવા કેટલાક રેન્ડમ iOS સામગ્રી આકૃતિ મને ઇમેઇલ મફત લાગે, અને ચોક્કસપણે તમામ કોડ ઑનલાઇન કારણ કે વાંચી જવું માત્ર સમય રસ અમે પ્રકારની વધુ ઉપર glossed વસ્તુઓ ફાઇનર દાણાદાર વિગતો. પરંતુ ન હોય તો, પછી તમારા iOS પ્રોજેક્ટ પર સારું નસીબ, હું અને આશા છે કે અમે હોય એપ સ્ટોરમાં એક એપ્લિકેશન્સ મોટા ધસારો. [CS50.TV]