RHED شي: مرحبا بكم في ترى الندوة CS50 - مقدمة لدائرة الرقابة الداخلية. شكرا لكم جميعا على حضوركم. آمل أنك مثلما متحمس وأنا عن دائرة الرقابة الداخلية. في العام الماضي، وأخذت CS50 كما في السنة الثانية، وأنا في الأساس علمت دائرة الرقابة الداخلية لبلدي المشروع النهائي. وكان كبير - كذلك، لم يكن من السهل، ولكن هناك الكثير من الدروس الدعم عبر الإنترنت. وأنا آمل حقا أن مع هذا الندوة، سأعطيك الرجال رئيس تبدأ في تطوير دائرة الرقابة الداخلية لذلك، من حيث تطوير دائرة الرقابة الداخلية، هناك نوعان من الأشياء الرئيسية التي يريدون تغطية اليوم. الأولى، واللغة - اللغة ستكون في الهدف-C. سنسمع الواقع شيء مثير حقا. لذلك، يمكنك الانضمام إلى أبل كله المجتمع من المطورين وبناء بعض تطبيقات رهيبة حقا. أيضا، دائرة الرقابة الداخلية 7 هو جميل، ونأمل، لبعضكم. ولكن من المثير للجدل، وأنا أعلم. وأساسا، ما أريد القيام به هو دليل لكم من خلال الهدف جيم، وأيضا كسكودي، وهو متكامل التنمية والبيئة التي عليك أن تكون العمل في دائرة الرقابة الداخلية ل. وهكذا، مجرد كلمة على الهدف جيم. أساسا، انها بالضبط نفس C، ولكن مع الكثير من الأشياء الأخرى. وهكذا، على نحو أكثر صرامة، انها في الواقع من بين مجموعة سوبر جيم لذا كل ما عليك يمكن القيام به في C في الوقت الراهن، والتي هي أحب أساسا pset من 0 إلى 6، كنت يمكن القيام به في الهدف جيم. لذلك، لا أشعر بالخوف حول هذا جديدة اللغة التي أنت ذاهب للتعلم. كنت قد غطت بالفعل الكثير من ذلك، لأنك فعلت كل هذا الماضي C فصل دراسي، باستثناء الآن وأنت تسير لديك الكثير من العمل مع. وأنا ذاهب لمجرد تقودك من خلال بضعة أمثلة لتسليط الضوء على بعض الاختلافات الرئيسية التي وجدت كانت عندما المهم حقا تعلمت الهدف-C العام الماضي. كذلك في الواقع، لذلك، والنقطة الأخرى هو، الهدف جيم هو، بالطبع، المنحى الاعتراض. وسنناقش قليلا حول ما يعنيه ذلك في وقت لاحق. أساسا، انها مثل كيف عملت مع البنيات في هذا pset الماضية، مع العقد وأخرى مماثلة أشياء من هذا القبيل. ما عدا، في الهدف جيم، كل شيء كائن، وأنت تسير لتكون يمر حول مؤشرات إلى كائنات بدلا من القيم نفسها. لذلك، انها مجرد شيء مهم لنأخذ في الاعتبار. لذا، لماذا لا نبدأ مع بعض الاختلافات في بناء جملة بين C و الهدف-C؟ أريد أن أسلط الضوء على # تشمل، كنت أعرف، io.h القياسية في C و C + +، مع النسخة الهدف جيم بذلك مما # هو الاستيراد، ومن ثم نوعا من ملف الرأس. في هذه الحالة، سيكون من UIKit، كما تعلمون، خفض UIKit.h. يمكن أن يكون أيضا، كما تعلمون، MKMapview لك خفض MKMapview.h إذا كنت تريد القيام به، مثل، خريطة داخل التطبيق الخاص بك. أشياء مماثلة من هذا القبيل. لذلك، والشيء المهم هو ما يلي قد تغير الآن لاستيراد. ولكن الفكرة ما زال قائما. كنت على وشك أن استيراد بعض الفرز من ملف الرأس في البرنامج. وأريد أيضا لتسليط الضوء على الفرق بين printf وNSLog. لكن، وكما قلنا سابقا، الهدف جيم هو مجموعة السوبر-الصارم C، مما يعني أن وجود printf في الهدف جيم، أيضا. ولكن، ومعظم الناس لا تستخدم ذلك. معظم الناس استخدام هذا NSLog لأنه يعطيك الطابع الزمني، وسنرى أنه في العمل في وقت لاحق. ولكن، انها عموما أكثر فائدة طريقة لطباعة المتغيرات. وأريد أيضا أن تسليط الضوء على أن NSLog يأخذ في نفسه فقط قيم النائب كما يفعل printf - حتى٪ d غير لكثافة العمليات، ٪ و هو لتعويم. ومع ذلك، أنا لا أريد أن أسلط الضوء هذه الأخيرة جدا احدة - NSLog٪ في علامة - وهذا هو عنصر نائب لكائن. وكما قلت في وقت سابق، ويتناول الهدف جيم الى حد كبير معظمها في الكائنات، وحتى هذا سيأتي في الاستخدام عند تريد طباعة، ربما، ربما ل NSArray، أو NSDictionary، أو NSString. لذلك، أيضا، لاحظ أنه في منطقتنا NSLog بيان، لدينا علامة أمام من الاقتباس - وهذا هو، للدلالة على أن سلاسل، الآن، في الهدف جيم هي كائنات. لم يعد هم نجوم ببساطة شار. انهم كائنات وهي تعامل على هذا النحو. لذلك، من المهم حقا أنه عندما كنت تستخدم NSLog يستغرق في NS السلسلة، والذي يعني أن عليك لتشمل في أمام الخاص علامات الاقتباس. وهذا هو السبب في أن ترى، وهنا، في كل من تدعو وظيفة لي لهذا NSLog، وأنا لها في أمام ونقلت وحتى على الرغم من٪ د وو هي ل٪ كل نفس من C. أي أسئلة حتى الآن؟ سأحاول أن يذهب من خلال هذا بسرعة حتى أننا يمكن أن يكون لها مزيد من الوقت للعمل مع كسكودي والهدف جيم، لذلك أن يا رفاق يمكن الحصول على مزيد من على دراية به. المقبل، أريد أن تسليط الضوء على شيء المهم من الناحية المفاهيمية. لذلك، في C، معظم الأشياء وظائف. نحن إجراء مكالمة ظيفة. فإننا نعلن وظائف بهذه الطريقة، مع عودة اكتب أولا، ثم اسم وظيفة، والأقواس، ثم مهما كانت الحجج ونوع هذه الحجج نريد أن تمر فيها. والهدف جيم، لأن كل شيء هو كائن أو الطبقة - حتى الطبقة والكائن نوعان من المصطلحات التي هي مرادفة معظمها مع بعضها البعض، ولذا فإنني قد استخدامها بالتبادل طوال الندوة. ولكن، سترى أن لدينا وسائل في الهدف-C بدلا من الوظائف. وأساليب تنتمي إلى الكائنات. لذلك تماما كما، واتخاذ ربما على سبيل المثال، عقدة - لدينا نوع [غير مسموع] عقدة من pset 6 أو 5 - لدينا كلمة والممتلكات، أو مؤشر عقدة المقبل. الأساليب هي مجرد وظائف داخل نوعا من الهيكل. لذلك، في هذه الحالة، قد يكون هيكل الكائن، ومن ثم فإن هذه الطريقة الشيء الذي ينتمي إلى كائن. وهذه هي الطريقة التي سوف تعلن، نوعا ما، أسلوب. سيكون عليك أن تبدأ مع، ومرة ​​أخرى، وعودة نوع - لذلك، حاولت أن اللون رمز الكلمات الرئيسية هنا حتى يتسنى لك الرجال يمكن أن نرى، على الأقل، التنسيق أوجه التشابه بين وظيفة الإعلانات والإعلانات الأسلوب. لذلك، عليك أن تبدأ مع، كما تعلمون، والعودة نوع - في هذه الحالة، انها صفيف، أو مؤشر NSArray - ثم لديك هذا الأسلوب. ثم، ما هو مثير للاهتمام هنا هو أنه بدلا من وجود الأقواس، ونحن لديك هذه كولون. وبعد ذلك، أمام حججنا، ونحن وضع، مرة أخرى، بين قوسين نوع من وجهة نظرنا. لذلك، الآن أنا أحاول لجعل مقارنة بين، كما تعلمون، ن و العدد، لأنهم كلا رجات مثل. ومن ثم، والآخر هو نوع NSUInteger. وبعد ذلك، مع الهدف جيم، عند تريد أن يكون حجج متعددة في جملة من طريقة، وكنت، نوعا ما، فصل بها نوع من مثل هذا - أنا لست متأكدا تماما كيف أصف ذلك، ولكن هذا هو مثال جيد على كيفية يمكن أن يكون حجج متعددة في هناك. هل يمكن، بطبيعة الحال، مجرد تماما تجاهل القولون andArray NSArray مجموعة إذا أردت مجرد طريقة أن يأخذ في حجة واحدة. نعم، سؤال. الحضور: هل كل من NSUInteger و الحجج NSArray التي يمكن اتخاذها في ضمن NSArray؟ RHED شي: نعم. لذلك، اسمحوا لي أن أشرح. لذلك، نعم. لذلك، كان السؤال هي NSUInteger و NSArray * أنواع الحجج، وهذا هو الصحيح. لذلك، وتريد دائما لتحديد ما نوع حجتك هو. وهنا، أحاول أن أعرض لكم لبعض من بناء الجملة وفوكب من الهدف-C، لذلك هذه هي أنواع الفعلية أن عليك أن تتعامل معه. وكما ستلاحظ، صفائف لم تعد، نوعا ما، أشياء بسيطة قوس. انهم الكائنات. على الرغم من، اذا ذهبنا الى المرحلة التالية الشريحة، يمكننا أن نرى ما في وسعنا من الصعب على رمز NSArray في الهدف جيم مع مجرد رمز في أمام الأقواس. أنا لا، في الواقع، متأكدا تماما ما إذا كان أنا ذو بناء جملة الثابت تلوينها مجموعة صحيح لإصدار C، ولكن هذا من المفترض أن تكون في مجموعة C. لذلك، وهذا هو كيف سيكون، كما تعلمون، ربما استخدام وظائف أو الأساليب التي أنشأنا في وقت سابق. أليس كذلك؟ لذلك، وهذا هو المكان الذي نعلن لدينا وظيفة وأسلوبنا. والآن نريد أن استخدامها في برنامجنا، وهذا هو كيف يمكننا أن نفعل ذلك. لذلك، في C، وعملتم، كما تعلمون، ربما، ب منطقي، وقمت بتعيين أنه ل تعادل وظيفة، ومن ثم يمكنك تمرير في الحجج. في الهدف جيم، انها جميلة الكثير من الشيء نفسه. لديك NSArray * my_array، وانها سوف يساوي - الآن، وفقط الفرق هنا هو هذا الشيء الكائن، لقد أبرزت الذي باللون الأصفر، و كما ترون، في C، هناك لا كلمة الصفراء الأخرى. وذلك لأن أساليب تنتمي مع كائن معين. ولهذا السبب أنا بحاجة إلى كائن ذلك، نوعا ما، ويدعو هذا الأسلوب على الرقم صفر، ثم وNSArray أ، ب، ج، د. أي أسئلة على ذلك؟ سنرى هذه المفاهيم في العمل قريبا جدا عندما نذهب الى العرض. موافق. الآن، أريد أن أتحدث قليلا لفترة وجيزة حول كسكودي 5، الذي هو بيئة التطوير المتكاملة أن عليك أن تكون تعمل مع. أنا أعرف الكثير منكم، أو البعض منكم، لم يكن لديك أجهزة ماكينتوش، وهو مشكلة لأن كسكودي غير متوفر ويندوز وأجهزة الكمبيوتر. لا تسألني لماذا، ولكن ربما - نعم، الشركات. أيا كان. ولكن على أي حال، لذلك، أعتذر إذا كان بعض لديك لتحميل نوعا من الجهاز الظاهري ل Mac في لتشغيل كسكودي 5. وإنما هو أنيق جدا البرمجيات للاستخدام. وهكذا، قبل أن يغوص في أي نوع من العرض، أريد فقط أن تظهر لك صورة لما تبدو مثل كسكودي في حياتك النافذة، ثم أيضا التحدث حول ما هو هذا الفضاء كله. لذلك، انها نوع من مثل تعلم كيفية استخدام Microsoft Word، باستثناء تريد الحصول على إطلاع على كل الأشياء المختلفة التي تجري هنا. لذلك الأولى، وأنا أريد أن أشير لك إلى شريط الأدوات في الأعلى. سترى أن، في الأعلى، سيكون لديك اسم الملف - أو، في الواقع، اسم المشروع الخاص بك ومن ثم اسم الملف الخاص بك. يحيط علما اللعب و أزرار توقف. تلك هي تلك التي عليك أن تكون تستخدم لتشغيل التطبيق الخاص بك على محاكاة - محاكاة دائرة الرقابة الداخلية. هذا تلقائيا يأتي مع كسكودي 5، لذلك لم يكن لديك ما يدعو للقلق تحميل نوعا من محاكاة. كنت فقط اضغط اللعب و ثم تشغيله التطبيق الخاص بك. ويمكنك أن تلعب معك، و سترى كيف يعمل في وقت لاحق. وبعد ذلك، في الوسط، بالطبع، هو حيث كل من التعليمات البرمجية الخاصة بك جميلة هي ستذهب. ومن ثم، وعلى الجانب الأيسر ناحية، عليك يكون هذا، نوعا ما، المجلد - الملاحة - وبعد ذلك، كما سترى ذلك، جنبا إلى جنب مع رمز المجلد، وهناك حفنة من الرموز الأخرى هناك التي وسوف يكون من المفيد في وقت لاحق. وبعد ذلك، على الجانب الأيمن هو أداة المنطقة التي يمكن أن تعمل مع بعض الكائنات وتحديد، ل أعرف، ما ينبغي أن يكون لون، ما وينبغي أن يكون خط النص، وهلم جرا. وعلى الرغم من كل ما تفعله في مجال المرافق، ويمكنك القيام في التعليمات البرمجية أيضا. وهكذا، سأذهب من خلال اثنين أمثلة على استخدام، ببساطة، أي رمز في كل - أو ضئيلة جدا كود - الآيات كل رمز، فقط لكي يا رفاق تعرف ما يمكن وما لا يمكن القيام به في كسكودي والهدف جيم. ومن ثم، أخيرا، في أسفل، لديك مجال التصحيح. لذلك، لم يعد لديك لتشغيل GDB، وهلم جرا، على برامجك. فإنه يفعل ذلك تلقائيا بالنسبة لك. ويمكنك أيضا طباعة الاشياء لهذا المجال. ذلك في الواقع، في وقت لاحق، سوف نذهب من خلال mario.c، إذا كنت لا تزال تتذكر الرجال أنه في كسكودي. بحيث ينبغي أن يكون متعة. ومن ثم، فقط لإعادته إلى الهدف-C، أريد أن تسليط الضوء على ما يمكنك القيام به مع إذا كانت تصريحات. لذلك، كما تعلمون، لأن الهدف جيم هو مجاميع من C، كل ما عليك فعله هو، حرفيا، وهو نفس C. أنت فقط لديها اختلافات طفيفة. لذلك، ستلاحظ شكل للو بيان لا يزال هو نفسه - لديك إذا، وبعد ذلك لديك قوسين مع حالة داخل، ومن ثم الأقواس المتعرجة عن كل ما تريد أن تفعل داخل هناك. ومع ذلك، كنت أرغب في وضع هذه الشريحة تصل هنا، ببساطة لتوضيح ذلك، لأننا نتعامل مع الأشياء الآن، سيكون لدينا لاستخدام هذه الأشياء دعا مثل، تساوي السلسلة، والذي هو، من قبيل الصدفة، وهي طريقة ل سلسلة أو كائن NSString. لذلك، كلمة، في هذه الحالة، هو NSString الاعتراض، ولها طريقة تسمى هو تساوي السلسلة، ثم نقوم بتمرير في سلسلة الثابت ترميز لرؤية إذا كانت تلك هي متساوية إلى واحد آخر. أي أسئلة حتى الآن؟ موافق. و، أريد أن أذهب أكثر وعلى هذا البيان أيضا. لذلك، على سبيل المثال، إذا أردنا أن حلقة على طول سلسلة في C، وهذا يجب أن تكون مألوفة لك. و، في الهدف جيم، وأنا لا أريد لتسليط الضوء على هذا، نوعا ما، طريقة تسمى العد. حسنا، في الواقع، اسمحوا لي تأخذ فقط أن يعود. العد هو وسيلة لصفيف. ومع ذلك، فإنه أكثر تحديدا ممتلكات مجموعة، والذي هو السبب في أنك يمكن استخدام التدوين نقطة. لكنني لا أريد أن ندخل في الكثير من هذه الاشياء المفاهيمي، أريد فقط لتظهر لك كيف تسير الامور ستبحث كما هو الحال في الهدف جيم مقابل C. وأيضا، وأنا لا أريد أن أشير إلى أن على الرغم من أنني أستعمل NSUInteger أمام كل ما عندي وأنا في الهدف جيم، يمكنك أيضا استخدام كثافة العمليات، وذلك لأن كثافة العمليات هو صالحة تماما في الهدف جيم، أيضا. نعم؟ الجمهور: هل هو مجرد الأسلوبية، أو هو - RHED شي: نعم. لذلك، كما سترى - لذلك، كان السؤال هو أن مجرد قضية الأسلوبية. كما سترى، ولدي، نوعا ما، نجمة الشيء النجمة في أسفل، و هذا الرابط يأخذك إلى تجاوز سعة المكدس تشكيل، حيث يفسر شخص ما الفرق بين الباحث في NSInteger وNSUInteger. وهكذا، يمكن أن تقرأ عن ذلك لاحقا. وسوف تكون هذه الشرائح، بطبيعة الحال، المتوفرة لديك. دعونا نرى. موافق، رهيبة. لذلك، يتم تضمين هذا أيضا في الشريحة لأنني اعتقدت هذا كان عظيم الموقع الذي يقدم لك إلى جملة الهدف جيم. لذلك، في الواقع، لماذا لا ننتقل إلى الكروم وتحقق من هذا الموقع؟ الحق. لذلك، ما أريد أن تظهر لك الرجال هنا هو هذه الصورة. لذلك، وهذا هو، نوعا ما، سيكون ما وأنت تسير لرؤية داخل أي ملف كسكودي. في الواقع، لماذا لا يمكننا مجرد إلقاء لحظة، نوعا ما، أغتنم هذه فيها. لذلك، وهذا الكتاب - وهذا الكائن الذي نتعامل مع. وبعد ذلك، من الواضح انها ستكون ورثت من بعض وجوه أخرى، ولكن لم يكن لديك ما يدعو للقلق بشأن ذلك. ومن ثم، فإنه، ربما، لديه بعض المتغيرات عضو. الشيء المهم أريد أن تظهر لك هي أساليب المثال، هنا. لذلك، يتم الرمز أساليب المثال هذا الطرح. وبعد ذلك، كما ستلاحظ، ونحن بدأت بالفعل لرؤية النموذج لطريقة الإعلان، أليس كذلك؟ نوع الإرجاع، اسم الأسلوب، و ثم نوع من الحجة، و ثم اسم الحجة. وهذا الطرح يعني أنها تشكل أسلوب مثيل، مما يعني أن وهذه الأساليب متاحة فقط لل الكائنات التي تم إنشاء مثيل. على النقيض ذلك، مع أساليب زائد توقيع أمامهم هي من الدرجة طرق، مما يعني أنه يمكنك استدعاء هذه الأساليب، حتى لو لم يكن لديك كائن تم إنشاؤه بعد. لذلك، على سبيل مثال واضح، NSString هي فئة. ويمكنك الاتصال، على سبيل المثال، أساليب الفئة على NSString - الفعلية، مثل، كلمة NSString. ومع ذلك، من أجل استخدام هذه طرق، كنت في الواقع تحتاج إلى إنشاء سلسلة. على سبيل المثال، يساوي سلسلة نجمة NSString في علامة اقتباس، مرحبا العالم. وبعد ذلك، يمكنك استخدام هذه الأساليب - أساليب المثال - على أن سلسلة مرحبا العالم. لذلك، وهذا هو الفرق بين طرق وأساليب الفئة المثال. و، غطينا فقط هذا الجزء. الخصائص هي شيء آخر التي هي داخل الأجسام، وأساسا. وتقوم بتعريف لهم والكلمة في الممتلكات. لديك هذه الخيارات، وهنا، التي ساوضح في وقت لاحق عندما نذهب الى العرض. نعم؟ مرحبا. الحضور: هل يمكنك تكبير، من فضلك؟ RHED شي: أوه نعم. آسف. الحضور: شكرا لك. RHED شي: وهذا ينبغي أن يكون أفضل كثيرا. الجمهور: نعم. شكرا لك. RHED شي: نعم، من فضلك أذكر لي إذا أنسى للتكبير أو التصغير. لذلك، وهذا هو كل ما أردت لتظهر لك ل- قف، وهذا هو الكثير - لهذا الموقع. لذلك، دعونا نعود إلى الشرائح لدينا. في الواقع، الآن دعونا نتوقف لحظة ليغوص التجريبي. لذلك، سنبدأ مع مشروع كسكودي جديدة. لذلك، إذا كنت سوف تفتح كسكودي على كل من الأجهزة الخاصة بك، يجب أن تأخذ لك بعض الصفحة حيث تقول، مثل، إما مفتوحة حتى مشروع قائم أو جديد المشروع، ويجب عليك انقر فوق مشروع جديد. ومن ثم، فإنه ينبغي أن تأخذ لك هذه الشاشة. نعم؟ الحضور: إذا لم يكن لديك ماك، هل نحن مجرد نوع من البرد؟ RHED شي: أو تبدو على مع شخص ما، نعم. نعم. يمكنك البرد أيضا. موافق. لذلك، ما نحن ذاهبون الى القيام به أولا، والآن، هو، في الواقع، ونحن في طريقنا للقيام تطبيق عرض واحد. لذلك، إذا كنت ستلاحظ، ما هو عظيم حول كسكودي والدعم لأبل المطورين هو أن لديك الكثير من قوالب للعمل مع بالفعل. هل يمكن، على سبيل المثال، وجعل التطبيق الرئيسي من التفصيل. يمكنك جعل لعبة - وفعلا، وأنا لن أخوض في الألعاب، لأن الألعاب هي قصة مختلفة دائرة الرقابة الداخلية من أجل التنمية. وانهم نوع من فصل، ولذا فإنني لن أخوض في ذلك. ثم، لقد مقرها صفحة التطبيقات. لديك تطبيق التبويب - لذلك ترغب، على سبيل المثال، بنك أوف أميركا ربما لديه، مثل، التطبيق كلفه. انها تلك التي لديك الأزرار في الأسفل. وبعد ذلك، لديك لعبة كيت العفريت. أو يمكنك العمل من نقطة الصفر، والتي هو ما سنقوم به لاحقا. ولكن دعونا، أولا، وتبدأ مع تطبيق عرض واحد. ثم، وأنها سوف تسأل عن اسم المنتج، و ويمكننا أن نفعل مجرد اختبار. اسم المؤسسة - لذلك، اسم المؤسسة، معرف الشركة - تلك هي مهمة إذا كنت تريد الذهاب لوضع التطبيق الخاص بك على المتجر. بخلاف ذلك، التعليمات البرمجية الخاصة بك هو الذهاب الى تشغيل غرامة على الاطلاق دون ذلك. هذا سيكون من المهم إذا كنت أريد - لذلك، في حد ذاتها، مثل، وضع التطبيق الخاص بك على هاتفك أو شيء من هذا، واختبار من ذلك، كما تعلمون، في واقع الحياة - هذا سيكون من المهم. هذا يميل إلى عادة تترافق مع نوعا من حساب المطور مع أبل. وهكذا، وأنا أعلم، وربما، والكثير منكم لن يكون لها أي حسابات المطور. وأنا أعلم أن الجامعة لديها واحد. أعتقد CS واحد. ولكن، يمكنك البريد الالكتروني لي وسأحاول لمعرفة ذلك بالنسبة لك. ولكن الآن، لقد وضعت للتو في بعض الأشياء نائب هنا. ويمكنك، بطبيعة الحال، هنا، اختر إذا كنت تريد أن تكون وحدها في اي فون، آي باد في، أو كليهما - التطبيق العالمي. لذلك، في الوقت الراهن، دعونا نفعل عالمية، فقط لرؤية جانبي المنصة. دعونا نرى. لذلك، الآن، انا ذاهب الى انقاذ في نوع من المجلد. لا يهم أين - لك يمكن دائما نقله في وقت لاحق. والآن، وقدمنا لدينا مشروع كسكودي. وأود أن لا تقلق بشأن كل هذا. أود أن أقترح عدم لمس أي من هذا، إلا إذا كنت تعرف بالضبط ما تفعلونه. لذلك، كل هذا، فقط تجاهل بالنسبة للجزء الاكبر. لن تحتاج لمسها، وإذا كنت هل خبط بعض الأشياء هنا، يحصل صعبة قليلا. لذا، لماذا لا ننظر إلى الملفات الموجودة على الجانب الأيسر باليد في الملاح لدينا. هنا، لدينا AppDelegate.h. لدينا AppDelegate.m ذلك، كما عليك إشعار، قمنا رأس الملفات، والتي ينتهي في نقطة ح، وليس لدينا تنفيذ - في الواقع، اسمحوا لي تكبير. موافق. اسمحوا لي تكبير. الحق، لذلك كنت قد رأس الملفات و لديك ملفات التنفيذ. في الواقع - موافق. هذا هو غريب قليلا، ولكن تتحمل معي. ثم، لأننا قد اخترت عرض واحد التطبيق، ونحن في طريقنا لتكون العمل مع القصة المصورة. لذلك، القصة المصورة هو شيء أن أبل قد حان حتى مع لتساعد حقا النموذج الأولي للمطورين بسرعة تطبيقاتها. لذلك، وهذا هو المكان الذي يمكن أن تخلق التطبيق دون كتابة سطر واحد من التعليمات البرمجية. ومع ذلك، في التطبيق لدينا رأي واحد، نحن لا، بالطبع، لديها ملف لرأينا، والتي وحدة تحكم الرأي. لذلك، لدينا رأس و ملف التنفيذ، هنا. وانا ذاهب الى التصغير الآن بسبب سنحتاج للعمل في لوحة العمل. لذلك، وهنا وجهة نظرنا. إذا كنا، ببساطة، قم بتشغيل التطبيق في الوقت الراهن، ليس هناك إثارة مستمرة. لذلك، سترى هذه الشاشة البيضاء. موافق؟ و، في منطقة المرافق لدينا، ويمكننا أن نضيف حفنة من أشياء مختلفة لذلك. لذلك، عندما كنت تتعامل مع شاشات في دائرة الرقابة الداخلية، وعرض وحدات تحكم هي الكائنات التي تغلف، نوعا ما، وجهات نظركم. لذلك، وحدة تحكم الرأي دائما وقد خاصية تسمى الرأي. وهذا الرأي، عادة، يحتوي، كما تعلمون، ما كنت نريد أن نرى على الشاشة. لذلك، حسنا، دعونا نبدأ من خلال وضع، ربما، وربما التسمية. لذلك، دعونا نضع تسمية على هناك - عصا في الوسط. لذلك، الآن بعد أن قمت بالضغط على التسمية، وأنا يمكن أن تذهب إلى مفتش الخصائص والبدء في تغيير قيمته. دعنا نسميها CS50 الألوان. و، ويمكن أيضا تغيير الخط. لذلك، بدلا من القيام النظام، الذي هو الافتراضي، يمكننا أن نفعل واحدة مخصصة. يمكننا تغيير - كما تعلمون، خفيفة، وجعلها 32. ومن ثم، يمكننا أن نجعل مربع لدينا أكبر. الجمهور: هل تعتقد أنك يمكن تكبير في أكثر قليلا، ربما؟ RHED شي: نعم؟ موافق. الحضور: فقط اضغط عليها؟ RHED شي: دعونا نرى. يعمل هذا؟ الحضور: مجرد تمرير كسكودي؟ RHED شي: بالتأكيد. موافق. رهيبة. الجمهور: التسمية تحت؟ التسمية؟ RHED شي: ما هذا؟ الحضور: ما المنسدلة كان الملصق تحت؟ RHED شي: لذا، كان السؤال، ما كان المنسدلة تحت التسمية؟ ينبغي ذلك، ببساطة، تكون تحت هنا. اعتقد انه شيء مكعب. ولكن عادة، وهذا هو الافتراضي - أنا مجرد الذهاب الى هنا حتى أجد تسمية. نعم. وحتى الآن، لدينا التسمية لدينا. دعونا تركز عليه. وكسكودي يعطينا المبادئ التوجيهية لتوسيط الكائنات. لذلك، الآن دعونا تشغيل رمز لنا مرة أخرى. هناك نذهب. لذلك، لدينا CS50 الألوان. والآن، دعونا نضع زر هناك، أليس كذلك؟ لأننا نريد أن نجعل هذا التفاعلية. لذلك، دعونا نضع زر هنا. ونحن سوف نطلق على هذا الزر "الصنبور هنا لمواصلة "، ونحن سوف تركز عليه، كما في الواقع، انها تركز بالفعل. نعم. لذلك، والآن لدينا زر واحدة. وإذا كان لنا أن تشغيل هذا مرة أخرى، ونحن في طريقنا لديك زر صغيرة لطيفة هنا. واستطيع ان اضغط عليه، ولكنه لا يفعل أي شيء، لأننا لم تفعل أي شيء مع زر حتى الآن. لذلك، دعونا خلق رأي آخر، أليس كذلك؟ لذلك، دعونا نقول أريد للاستفادة هذا الزر وأريد أن انتقل إلى صفحة أخرى - رأي آخر. ما أنا بصدد القيام به هو، وأنا يمكن أن تخلق وحدة تحكم الرأي، أليس كذلك؟ الآن أنا النقر على زر بلدي، وبعد ذلك، الشيء المهم هو، وانا ذاهب ل انقر فوق - أو - نعم، ومراقبة الصحافة على لوحة المفاتيح الخاصة بي. السيطرة. انقر على زر، ثم اسحب. لذلك، تذكر أن الاستمرار على مفتاح التحكم. دعونا نفعل ذلك مرة أخرى. لذلك، وعقد التحكم، انقر فوق، وسحب لماذا تريد أن تفعل. موافق. والآن، لدي العديد من الخيارات هنا. استطيع إما دفع، أو يمكنني القيام به ل مشروط، أو يمكنني القيام به العرف. دفع فقط إذا كان لديك تحكم الملاحة. الآن، لدينا عرض أول تحكم ليس داخل أي تحكم الملاحة. لذلك، وحدة تحكم الملاحة هو واحد التي تمنحك الزر مرة أخرى على التطبيق دائرة الرقابة الداخلية حيث لديك، كما تعلمون، أن أعلى، نوعا ما، شريط سميكة - حيث يمكنك الذهاب إلى الوراء، أو إلى الأمام، وهلم جرا. الحق الآن، وأنا لم يكن لديك ذلك. وهكذا، وهذا هو السبب في أنني لا تستطيع أن تفعل دفعة. لذلك، أنا النقر على دفع بطريق الخطأ، وهنا. وفعلا، دعونا تشغيل التعليمات البرمجية، وينبغي أن تحطم على لي. إلا إذا كنت اضغط على الزر على الرغم من ذلك - الحق. لذلك، وهذا أمر سيء. وكما ترون، هنا، ونحن لديك رسالة الخطأ. لذلك، "segues على دفع يمكن أن تستخدم إلا عندما يدار من قبل وحدة تحكم المصدر مثيل تحكم الملاحة واجهة المستخدم ". لذلك، لأن هذا لم يكن من داخل تحكم الملاحة، أنا لا يمكن أن تفعل ذلك. لذلك، الآن، انا ذاهب الى مجلد، تعود إلى القصة المصورة. الحضور: ما هو التصفح تحكم، مرة أخرى؟ RHED شي: وهكذا، الآن سوف تظهر لك. دعونا نرى. لذلك، انا ذاهب الى النقر على هذا الرأي تحكم، ومن ثم انا ذاهب للذهاب يصل إلى المنتج - في الواقع، لا، آسف - المحرر. وانا ذاهب للذهاب الى - في الواقع، لم أكن انقر على ذلك؟ لا. هناك نذهب. أنا ذاهب لترتفع إلى محرر، والنزول لتغرس في، ثم الملاحة تحكم. موافق. و، مساحة العمل الخاصة بي يبدو فوضوي حقا، لذلك دعونا تنظيف هذا. لذلك، كل هذا هو القصة المصورة. وبهذه الطريقة - موافق، ووقف - يمكنني بناء شيء بسرعة مثل هذا. ومن ثم، والآن أستطيع أن أعود، هل تعلم؟ ولكن هذا هو نوع من السأم، أليس كذلك؟ لذلك، ما أريد القيام به هو، لا أريد لجعل، ببساطة، وهو رأي تحكم. دعنا نقول أردت أن تجعل في الواقع تحكم عرض جدول، لذلك يمكن أن أضع في بعض الألوان لطيفة، في الجدول. لذلك، والآن بأنني قد وضعت في وجهة نظري الجدول تحكم، ولست بحاجة للاتصال مرة أخرى من هذا الزر ل تحكم الرأي. لذلك أنا بحاجة للقيام إرادتي، انقر فوق، اسحب الشيء مرة أخرى. والآن أستطيع أن أفعل دفع، لأنني تضمين ذلك داخل وحدة تحكم الملاحة. الحضور: وحدة تحكم الملاحة فقط يسمح لك أن تذهب من مكان إلى آخر؟ RHED شي: نعم. لذلك، أكثر من الناحية الفنية، انها كائن حيث - لذلك، داخل الملاحة كائن وحدة تحكم، فإنه يتتبع صفيف. ويرى أن كل مجموعة لاحقة عرض وحدات التحكم. هذا هو السبب عند الضغط مرة أخرى، وذلك يعود إلى الصفحة السابقة. لأن وحدة تحكم الملاحة كائن، أو الرمز الذي يعتني هذا الكائن، لديها مجموعة التي تحافظ على تتبع هذه عرض وحدات تحكم، و ويمكن بعد ذلك، كما تعلمون، DQ الرأي تحكم وتعطيك ظهر سابقتها. لذلك، وهذا هو الاشياء التقنية، ولكن - وسوف تظهر لك في وقت لاحق رمز، إذا كان لدينا الوقت. أنا نوع من نفاد في الوقت المناسب، ولكن - لذلك، مع عرض جدول، ما يمكننا القيام به هو - انها عادة تعيين تلقائيا لدينامية النموذج - ونحن في طريقنا لجعلها خلايا ساكنة، وإلا فإننا ذاهبون الى واجهت بعض المشاكل. وبعد ذلك، دعونا نقول انا ذاهب لديك مقطع واحد. لذلك، هو مثل أقسام - إذا كنت قد رأيت من أي وقت مضى التطبيق الموسيقى، عندما لديك الفنانين، من شأنه أقسام أن يكون هناك من خلال Z's - الرسائل - ومن ثم، كما تعلمون، الفرد سوف تكون الصفوف أسماء الفنان. وهكذا، ما هو بارد هنا، هو أن أستطيع الوصول إلى كافة الكائنات داخل من القصة المصورة بلدي من خلال هذا القائمة المنسدلة، أيضا. لذلك، أنا ذاهب إلى الضغط على القسم الخاص بي، وأريد، كنت أعرف، ربما خمسة صفوف. وبعد ذلك، داخل كل صف، أريد أن أضع تسمية. وانا ذاهب لاستدعاء هذا الأزرق. وبعد ذلك، أريد أن أضع وجهة نظر واجهة المستخدم، ل أعرف، ربما ل، مثل، قليلا مربع. حتى أستطيع أن أظهر للناس معاينة اللون. وسوف أعود إلى الممتلكات و تغيير هذا اللون ل، أوه، أنا لا أعرف، هذا واحد. ومن ثم، لاحظ أيضا، وهنا، عندما يكون لدي الملحقات، ويمكنني أن لديك الكثير من إكسسوارات مختلفة التي تراها عادة. مؤشر الكشف، والتفصيل، أو علامة الاختيار، أو ببساطة التفصيلية فقط. لذلك، ربما يمكننا القيام به، مثل، الكشف المؤشر، على سبيل المثال. ثم، لماذا لا نأخذ هذه، نسخة لصقها، ووضعها في صف الجدول التالي. لذلك، يمكننا أن نسمي هذا الأصفر. وأنا قد تضطر الى تمديد هذه. دعونا جعله الأصفر. وبهذه الطريقة، يمكننا نسخ لصق طريقنا إلى أسفل. ما كان عليه؟ الأرجواني. لذلك، وهذه هي كل CS50 نموذجية الألوان التي كنت قد رأيت في الصف - في الواقع، آسف - أو على الموقع الإلكتروني. نأمل أن نرى يا رفاق ما أفعله هنا. موافق. واحدة الماضي. الحضور: كيف قمت بإضافة الصف البداية؟ RHED شي: لذا، كان السؤال، كيف لم أكن إضافة صف في البداية؟ ذهبت إلى هذا القسم الجدول - أو لكن يمكنني حدد قسم الجدول - ومن ثم، وهنا، وأنا تحديثها عدد الصفوف. واسمحوا لي أن الأمل في أن يعمل هذا. موافق. دعونا نرى ما اذا كان هذا يعمل. أوه، والكمال، رهيبة. موافق. بينما كنت بناء بلدي التجريبي، وبعض تتضارب الأشياء، لذلك، شكرا ل التصفيق. نعم. لذلك، دعونا نرى. اننا سنحقق هذا فقط تسعة لجعل كل شيء - أو في الواقع، دعونا فقط تتحول كل هذه في الكشف المؤشرات. وبعد ذلك، ما أريد أن تظهر لك، أيضا، كيف كان يمكن أن تتخذ كل من تلك صفوف الجدول ويكون لهم التفاعل - اه. لا. اه. أيضا، أريد أن تظهر لك - هنا، يمكن أن أضع عنوان موقعي تحكم الملاحة، أليس كذلك؟ ذلك الواقع، ستلاحظ، وسرعان ما جزءا لا يتجزأ من وحدة التحكم هذه الرأي داخل من وحدة تحكم الملاحة، ونحن نرى هذا شريط التنقل في أعلى لدينا تمثيل القصة المصورة وحدة تحكم الرأي. وهكذا، وهذا يعطينا، مثل، البصرية، نوعا ما، توجه إلى شاشة مرئية لدينا. هذا ومن الواضح أن الذهاب الى يكون شريط التنقل. وماذا أريد أن أفعل بسرعة، الآن، يتم وضع في بلد آخر - لذلك هذا تحكم عرض جدول فعلت من قبل اتخاذ واحد من هذه وسحبه هنا، وهذا ما سمح لي بسرعة، حقا، إنشاء طريقة عرض الجدول تحكم. إذا لدينا الوقت رغم ذلك، عليك نرى أنه، برمجيا، انها قليلا أكثر صعبة لإنشاء جدول عرض وحدة تحكم، لأن هناك زوجين من الطرق التي هي مطلوب بالنسبة لك ل، نوعا ما، إرسال في ترتيب لعرض جدول تحكم ليتم عرضها بشكل صحيح. ومع ذلك، أنا فقط أريد أن تظهر لك، الآن، مثال من حيث، إذا كنت تأخذ هذا، على سبيل المثال - لقد وضعت في وحدة التحكم رأي آخر. والآن، دعنا نقول أريد أن السيطرة ALT بلدي الزرقاء الأولى صف الجدول إلى هنا. وأريد أن أسمي هذا الأزرق. وبعد ذلك - دعونا نرى. أنا في وجهة النظر الآن، ويمكنني تغيير الخلفية إلى اللون الأزرق. وهكذا، لاحظ هنا أن هذا المنسدلة القائمة كما يتيح لك التسلسل الهرمي للجميع من هذه الكائنات. لذلك فإن الشيء المهم أن نلاحظ، هنا، هو أن كل هذه الأمور، وهنا - وحدة التحكم هذه عرض جدول الجدول عرض، عرض جدول القسم، عرض جدول الخلية - كل هذه هي الكائنات، في التعليمات البرمجية. لذلك، كما تعلمون، تسمية الآن هو تحت عرض المحتويات، وهلم جرا. هلم جرا وهكذا دواليك. لذلك، إذا كان لنا أن تشغيل هذه التعليمات البرمجية، ونحن يجب أن نرى شيئا - دعونا نرى ما اذا كان هذا - نعم. لذلك، هناك نذهب. ولكن، إذا لم نفعل ذلك، لا شيء هذه أمور العمل. أليس كذلك؟ لذلك يعمل فقط هذا واحد. و، من أجل الوقت، وأنا لن الخوض في، كما تعلمون، ووضع أسفل منها الأخرى. وهذا هو نهاية، نوعا ما، القصة المصورة - ما أردت أن أبين لكم لوحة العمل. و، ولدي مثال عملت بها، في الواقع، والحق هنا. لذلك، وهذا هو لوحة العمل التي قمت بها سابقا. لذلك، وكما ترون، وكان هذا تحكم الملاحة بلدي. ثم كان لي أول وحدة تحكم وجهة نظري، ثم كان لي تحكم عرض جدول، ثم كان لي كل هذه - لذلك سابقا، كنت أفعله شيء مختلف جدا. لذلك، إسمح تلك الأشياء. أنا ربما سوف تنظيفه في وقت لاحق قبل أبعث تشغيله إلى الإنتاج. ولكن، إذا كان لنا أن تشغيل هذا، سنرى أن جميع الخيارات مطروحة المتاحة لنا. إلا أنني لم تجعل الخلفيات تلك الألوان. لذلك، تطبيق بسيط لطيفة. الآن، دعونا نحاول أن معالجة هذا برمجيا. موافق. لذلك، على أن تفعل ذلك، ونحن مجرد الذهاب لبدء مشروع كسكودي جديدة. اننا سنحقق ذلك تطبيق فارغ الآن، لأننا لا نريد أن يكون لل القصة المصورة. لذلك، أنا مجرد تقييد نفسي لا استخدام أي من القصة المصورة، و سوف تطبيق فارغ لا أعطني القصة المصورة. هذا هو فقط لمنع نفسي من الغش. دعونا نرى. الانتظار. لم أكن - نعم. موافق. الحق. لذلك، وهنا، نحن مع اليسار شيء آخر ولكن التعليمات البرمجية. لذلك، اسمحوا لي أن تتحرك هذه النافذة أكثر قليلا. الحق. كما ترون هنا، والملفات فقط نحن المعطاة هي AppDelegate.h ونقطة م، وليس لدينا القصة المصورة بعد الآن. حتى إذا كنا تشغيل هذا، ونحن لا تزال جارية ل الحصول على شاشة بيضاء، والحمد لله. OK - شاشة بيضاء، ولكن لا شيء آخر. و، وهنا هو الجزء المهم. هذا هو المكان الذي يحدث العمل. في الإصدارات السابقة، هناك عادة أي رمز هنا، ولكن القصة المصورة يوفر أساسا رمز لهذا الجزء. ولن أخوض في التفاصيل حول كيفية القيام بذلك. وما نريد أن نفعله الآن هو، ونحن نريد للذهاب هنا، وهذه مساحة صغيرة يبدأ خلق التطبيق لدينا مرة أخرى. لذلك - نعم؟ الجمهور: التكبير؟ RHED شي: التكبير. نعم، بالتأكيد. موافق. سأكون كتابة، لذلك لا ينبغي هذا يهم كثيرا. موافق. لذلك، أولا، تذكر أردنا خلق وحدة تحكم الملاحة، أليس كذلك؟ وأيضا، كما ترون هنا، كسكودي يقوم بعمل عظيم حقا من ملء الذاتي. لذلك، كما ستلاحظ، وأسماء كل شيء الكثير أطول من المعتاد، ولكن كسكودي يسد عليه في لك. حتى أتمكن من مجرد الضغط على Enter. لذلك، أريد أن إنشاء الملاحة UI مؤشر تحكم، وأستطيع أن أسميها navigationController. الآن، ماذا أفعل الآن؟ بعد هذا علامة المساواة، ولست بحاجة، أولا، إنشائه داخل الذاكرة. لذلك، انا ذاهب الى القيام NavigationController الوك - لذلك، وهذا يشبه إلى malloc، أن يا رفاق المستخدمة في C - وبعد ذلك، أنا ذاهب إلى الحرف الأول منه. لذلك، من المهم حقا أن أي الكائن الذي خلق، وتريد أن الوك والحرف الأول منه. أن يحدث لإنشائه و instantialize ذلك داخل الذاكرة، و الآن يمكنك استخدامه. كل الحق؟ إذا كنت لا تفعل ذلك، وجوه الخاص بك لا لا وجود لها، وعليك أن تصل الى حفنة من المشاكل. وبعد ذلك، أريد إنشاء وحدة تحكم الرأي، أليس كذلك؟ لذلك، أريد أن إنشاء UIViewController نجمة - لذلك، كل ما هو مؤشر في الهدف-C، وانا ذاهب الى القيام به شيئا من هذا القبيل، وهنا - الوك، الحرف الأول. موافق. ثم ما أنا بصدد القيام به هو، وأنا الذهاب إلى - لذلك، أتذكر عندما فعلنا وتضمين تحكم في الملاحة؟ هذا هو كيف يمكنك أن تفعل ذلك في التعليمات البرمجية. كنت تنوي القيام به navigationController pushViewController - الحضور: [غير مسموع]. وهذا يحدث بالنسبة لنا، أو -؟ RHED شي: أوه، نعم. لا. أنه يحب لي أفضل. لا، انها سوف تعمل من أجلك أيضا. لذلك، وهذه كلها طرق. حتى pushViewController هو الأسلوب، و أيضا، وبشكل أكثر تحديدا، انها أسلوب مثيل من واجهة المستخدم تحكم الملاحة. لأن كان لي لخلق بلدي UI الملاحة نجمة حدة تحكم، وبعد ذلك يمكن أن نطلق على هذا pushViewController على بلدي المثال محددة من الملاحة واجهة المستخدم تحكم. الحضور: هل علينا أن نفعل بالضبط كلمة واحدة، أو أنها لا توجد أصلا لذلك؟ RHED شي: نعم، لأنه وسيلة. انها مثل وظيفة. انها مثل printf. انها مثل scanf. انها مثل strcompare. إلا أنه يعرف ما قد ترغب في اكتب، ثم لاحظ أنه سوف أكون دائما الخروج مع الأشياء التي هي يسمح من الناحية القانونية بالنسبة لك. لذلك، إذا كان أي شيء يظهر هنا، ثم هناك شيئا خطأ. لذلك، pushViewController. لذلك، والآن، أريد أن دفع بلدي المنشأ حديثا UIViewController، ومن ثم، والرسوم المتحركة - ربما لا. لأن هذا سيكون وحدة تحكم القول الأول. أعني، حتى لو لم تجعل المتحركة، ربما لن تظهر، ل انها الشاشة الأولى. وتذكر بين قوسين. لذلك، أتذكر كيف كنا الأقواس؟ وداخل الأقواس، و يدعو الكائن على طريقة - لذلك هدفنا هو الملاحة تحكم، والأسلوب هو دفع تحكم عرض الرسوم المتحركة. ونرى كيف يأخذ في حجتين، وانهم انفصلوا من قبل، نوعا ما، الكلمات، والقولون. لذلك، الهدف جيم يحاول جعلها جميلة وسهلة بالنسبة لك لقراءة بصوت عال - التعليمات البرمجية الخاصة بك - ويكون ذلك شبه، نوعا ما، معنى. ومع ذلك، القيام بذلك فقط لا يكفي. اسمحوا لي التصغير الآن. تفعل هذا فقط لا يكفي ل الحصول على ما وصلنا إليها سابقا. حتى هنا، ستلاحظ أن هناك في الواقع لن يكون هناك أي نوع من بار، هنا، أليس كذلك؟ وليس هناك شريط التنقل، وهو ما يعني اننا ما زلنا لم نصل إليها. ويمكننا اختبار أن أصل، أيضا، من خلال، ربما، وتغيير خلفية ViewController، أليس كذلك؟ ViewController.background - آه. لذلك، نرى كيف ViewController لم يكن لديها لون الخلفية، على الرغم من أنني يريد الوصول إليه؟ وذلك لأن ViewController هو وعاء لطريقة العرض. لذلك، فإنه يحتوي على خاصية عرض، والتي ثم لديه لون الخلفية. و، وأنا يمكن أن يحدد ذلك، نوع من مضجر، عن طريق استدعاء اللون على الكائن UIColor. لذلك، لاحظ هنا، redColor هو الأسلوب. انها طريقة فئة من UIcolor. لأنني لم يكن لديك لإنشاء المثال الفعلي للUIColor من أجل استدعاء الأسلوب على ذلك. أنا فقط، ببساطة، يطلق عليه على اسم نوع مثل. أنا، مثل، ودعا على كثافة العمليات، إذا كان الباحث، مثل، وسيلة لذلك، على سبيل المثال. وهكذا، إذا كان لنا أن تشغيل هذا الرمز، وسوف نقوم تلاحظ أن الخلفية في الواقع ليست حمراء. انها لا تزال بيضاء. وكيف يمكننا الحصول على جميع أنحاء وهذا هو، لاحظ كيف أن هناك self.window. وهذا هو، مثل، الحاوية النهائي للتطبيق الخاص بك. هذا هو الشيء النهائي الذي يحتوي كل شيء على الشاشة، ل اي فون أو آي باد التطبيق. و، ملائم، self.window لديه هذه الخاصية تسمى rootViewController. والتي ستكون المؤشر ل وحدة تحكم عرض أول جدا داخل من التطبيق الخاص بك. لذلك، ما نريد القيام به هنا، الآن، هو لتعيين هذا يساوي الملاحة دينا تحكم. أليس كذلك؟ لأنه، من الناحية الفنية، والملاحة تحكم مذهبنا الأولى تحكم. ومن يتتبع مجموعة من الرأي الآخر وحدات تحكم، ونحن دفعت هذه تحكم في الرأي بأن مجموعة في وحدة تحكم الملاحة. لذلك، كنت لا تريد أن تفعل هذا. فإن ذلك لا يساعد حقا لك. كنت تريد أن تفعل هذا، إذا أردت أن تفعل وحدة تحكم الملاحة، والتي معظم من أنت من المحتمل أن لسترغب ل، نوعا ما، يكون نوعا من، مثل، القائمة للعودة إلى أو بعض موقع للعودة إلى، بدلا من شاشة فارغة. نعم؟ الجمهور: هل هو غير مريح بالنسبة لك لزوم في و- RHED شي: نعم. لذلك، نعم. هذا هو رمز، والآن دعونا اختبار بها. لذلك، هناك نذهب. السحر. لذلك، حسنا. شكرا لك. موافق. وحتى الآن، ما نريد القيام به هو - لذلك، نحن نوع من محدودة، هنا، أليس كذلك؟ نحن يمكن أن يحتمل كتابة كل شيء داخل هذه وظيفة واحدة. ولكن، هذا ليس كيف تطور دائرة الرقابة الداخلية يعمل عادة. لذلك، ما نحن بصدد القيام به هو، ونحن الذهاب الى خلق بعض ملفات جديدة. ولكن، وبشكل أكثر تحديدا، ونحن في طريقنا لل إنشاء فئة أخرى الهدف جيم، أو كائن آخر - فئة وكائنات قابلة للتبادل هنا. و، وهنا كيف يمكن، من المحتمل، إنشاء فئة أخرى من وحدات التحكم U. لذلك، انها فئة فرعية، كما ستلاحظ، هنا، انها فئة فرعية من تحكم عرض واجهة المستخدم، ولكن يمكنني يطلق عليه أي اسم آخر هنا. ويمكنني أن أسمي هذا CS50، وأنا يمكن أن نسميه وحدة التحكم هذه الرأي، أنا يمكن أن نسميه وحدة التحكم هذه عرض بلاه - أي شيء أريد. هذا هو مجرد اسم للفئة. ومع ذلك، فإنه سيكون من المهم لأنه، في الأساس، ما أفعله هنا هو، أنا خلق اسم فئة أخرى. لذلك، فإنه سيكون من، مثل، بعض نوع من نوع أو كائن. لذلك، فإنه ينبغي أن تكون عامة قليلا. انها لن تكون محددة جدا. وأيضا، وأنا لا أريد أن أشير من هذين الخيارين. لأننا نبذل كل ما في داخل رمز، في بعض الأحيان أنه من الأسهل كثيرا لتحقيق في ملف واجهة، بحيث أنا يمكن سحب وإسقاط حرفيا، و فعلنا سابقا مع القصة المصورة - كما تعلمون، تسمية، أو زر، أو أي شيء آخر. وهكذا، xibs هي الملفات التي تسمح لك ل تفعل ذلك، وعليك أن وصل الأمر لعرض هذا الملف حدة تحكم. لذلك، انا ذاهب الى عمدا لا تحقق ذلك. عادة ما أود أن تحقق ذلك، وإذا كنت فعلت هذا فقط لفون أو آي باد، وأنا أن تحقق هذا وببساطة واحد ل، كما تعلمون، اي فون أو آي باد. ولكن منذ أفعله العالمية، وانا ذاهب لإنشاء اثنين من هؤلاء في وقت لاحق. لذلك، انا ذاهب الى عمدا قم بإلغاء هذا. هذا هو المهم حقا أيضا. هناك الكثير من الأوقات، لقد كان البق حيث لم يكن تحديد هذا. وهكذا، من الواضح، وهذا الملف ليس، نوعا ما، مثل، تضمين أو المستوردة داخل هذا المجلد الاختبار. وهكذا، قانون بلدي لديه أي فكرة على الإطلاق من وجود هذا الملف، و الذي يسبب الكثير من الألم وساعات من التصحيح. ولكن، فقط للتأكد من هذا يتم فحص ذلك ذلك، كما تعلمون، فإن الهدف من هذا الملف هو لهذا التطبيق. موافق. لذلك، والآن قمنا بإنشاء ملفين جديدة. وهذه الملفات تبدو فارغة جدا. و، في الواقع، دعونا نواصل أيضا على طريق إنشاء الملفات xib. لذلك، في وقت سابق، وكنت في الكاكاو اللمس المنسدلة. الآن، انا ذاهب للذهاب الى العضو واجهة تعمل باللمس، وكما ترون، وأنا يمكن أن تخلق القصة المصورة. لذلك، بدأت حتى مع فارغة التطبيق، وأنا لا تزال تستخدم القصة المصورة. على الرغم من أنه يحصل صعبة من حيث كيف تريد الاتصال أن إلى التعليمات البرمجية. لذلك، وأنا لن أذهب إلى هناك. ولكن، ما نريد القيام به الآن إنشاء طريقة عرض. ويمكنك اختيار ل اي فون أو آي باد. وعادة، للدلالة على الفرق - إذا كنت تفعل التطبيق الشامل - يمكنك إما وضع تسطير فون، أو يمكنك القيام Twiddly. لا يهم حقا. انها ببساطة لتتمكن من التفريق الذي عرض هو الذي الجهاز. وهكذا، تبدو الآن. لدي الشاشة التي يمكنني العمل معه. وهكذا، على سبيل المثال، يمكن أن أضع تسمية هنا، كما تعلمون، ويمكنني أيضا أن وضع على زر آخر هنا. أنا لن يكلف نفسه عناء تغيير القيم هنا. ولكن، ما هو مهم هنا هو أن صاحب الملف - لذلك، وأنا داخل من اي فون الرأي، ملف xib فون. وهبوطا في هذا المجال الملاحة أو القائمة المنسدلة، أريد أن أذهب إلى مالك الملف. وهذا هو حقا خطوة هامة هنا. أريد أن تجعل طريقة عرض الفئة تحكم، لذلك أن هذا الملف هو xib سوف تترافق مع بلدي تحكم الرأي. وأي شيء أقوم به داخل رأيي هو تحكم برمجيا سوف تنعكس على هنا. لذلك، ومع ذلك، لاحظ أن - في الواقع، دعونا جعل هذا الرأي الأزرق الخلفية، على سبيل المثال. أو الأخضر. وبعد ذلك، حتى إذا كنت ستلاحظ، مرة أخرى في هذا الرمز، وهذا هو المكان الذي وصلنا إلى تحكم الملاحة. على الرغم من أننا لم هذه الخطوة، فإنه من لا تزال جارية لتكون حمراء، وليس الأخضر. وهناك سبب لماذا. ذلك لأنه، عندما كنا inited تحكم وجهة نظرنا، وهنا - آسف، انها قليلا مجنون - عندما كنا inited تحكم رأينا هنا، نحن inited أنه من النوع العام UIViewController. موافق؟ لذلك نحن لم تفعل حتى مع هذه الفئة. لذلك تذكر، وهذا هو مثل فئة الآن. ويمكن النظر إليها على أنها نوع، فقط كما UIViewController هو نوع. ولكي تتمكن من استخدام ذلك، ما يتعين علينا القيام به هو استيراده - ViewController استيراد - وكما ترون، فإنه autofills ذلك بالنسبة لي. لذلك، ViewController - والآن، وهنا، يمكنني تغيير هذا UIViewController لViewController. والآن، وهنا، يمكنني تغيير هذا ViewController. دعونا تشغيل هذا مرة أخرى. ما زال أحمر عليه. والسبب انها لا تزال الأحمر هو بسبب - WOAH، ماذا حدث هناك؟ أردنا ربط هذا xib ملف مع وحدة تحكم الرأي. ومع ذلك، من أجل القيام به في الواقع ذلك، نحن بحاجة إلى الخوض في هذا. وعندما نفعل الحرف الأول، ونحن نريد أن نفعل initWithNibName، ثم نريد أن تفعل في سلسلة View_iPhone، على سبيل المثال. يمكنك تجاهل حزمة هنا. وهذا سوف يسمح لنا، في الواقع - أه أوه، هناك مشكلة. الحق. وهكذا، هناك مشكلة، لأنه في لدينا ملف عرض xib، لدينا تسمية و لدينا زر واحدة. ومع ذلك، على الرغم من أننا قد ترتبط هذين، لا يوجد شيء داخل ViewController.h أو ViewController.m تعكس تلك أزرار أو تلك التسميات. لذلك، نحن بحاجة إلى إرسال تلك في النحو خصائص تحكم الرأي. لذلك، هذه هي الطريقة التي تعلن الممتلكات. فإنه يأخذ في، عادة، هذين الخيارين. لأغراض لنا وهذه الندوة، وأود أن أقول أنه، بصفة عامة، معظم الخصائص هي nonatomic والاحتفاظ بها. يمكنك أن تقرأ من قبل جوجل والبحث، تعلمون، فإن الفرق بين nonatomic والاحتفاظ بها، فإنك تعرف، جوجل أو شيء من هذا. وسوف يأخذك إلى، مثل، المكدس تجاوز، حيث سيكون الناس الأجوبة عن الاختلافات بين هؤلاء. لكن في الوقت الراهن، وهذا ما نحن تريد أن تكون المعنية. ونحن نريد أن نجعل تسمية واجهة المستخدم، نجمة، ويمكن أن نطلق عليه كل ما نريد. يمكننا أن نطلق على هذا، كما تعلمون، والتسمية. و، سنقوم خلق آخر واحدة للزر. وتذكر أن تشمل النجمة، لأننا نتعامل مع مؤشرات الى حد كبير في كل مكان داخل من الهدف جيم. مع ذلك، أنه لا يزال لن يحل المشكلة، كما ترون هنا. والسبب هو لأنه، كلما كنا تريد الاتصال تسمية ملف أو xib زر للبرنامج، أو رأس وملف التنفيذ، ونحن نريد ل إضافة هذه القطعة من التعليمات البرمجية - منفذ. لاحظ أنه كلمة رئيسية. وبمجرد أن تنتهي من الكتابة أن أصل، فإنه يجب أن يكون لهذه دائرتين، هنا. عادة، انهم لا شغل فيها لست متأكدا لماذا هم. ولكن عادة، سيكون لديك يدويا ربطها من خلال الذهاب الى هذا الجانب من منطقة المرافق العامة. وهكذا، في الوقت الراهن، لقد حصلت على تسمية بلدي المختارة، وأريد أن سحب هذا جديدة الرجوع منفذ لمالك الملف بلدي، ثم انقر على تسمية. وحتى الآن، وأخيرا، وهذا هو التسمية تتصل هذه التسمية. وهذه التسمية هو ما نحن في طريقنا لل استخدام برمجيا لتغيير ل النص، والخط في وخلفيتها اللون، وهلم جرا. لذا، لماذا لا نفعل الشيء نفسه بالنسبة للزر؟ وكما ستلاحظ، لزر، انها قليلا أكثر تعقيدا. لأنه، أعني، كنت من المفترض أن الصحافة على زر، لذلك انها حصلت على الكثير من الخيارات لكيفية المستخدمين ويمكن الضغط على زر. ومن ثم، سنرى في وقت لاحق على أن يمكننا ربط هذا لدينا رمز والعمل على انجاحه. لذلك، على الرغم من الآن ل، ونحن نريد للاتصال إلى زر الفعلية داخل رمز لنا. لذلك نذهب إلى منفذ المرجعية الجديدة، والقيام بعد ذلك الزر. الآن، دعونا تشغيل هذا مرة أخرى. اه اه. موافق. أنا لا أعرف ما يحدث هنا الآن. قف. لحظة واحدة فقط، هنا. في الواقع، لماذا لا نلقي ننظر إلى مثال آخر في مصلحة من الزمن. موافق. لذلك، وهنا أعد بسهولة أكبر مثال لViewController. كما ترون هنا، لقد شملت خصائص التسمية والزر. ثم، وهذا جزء من التعليمات البرمجية هنا - هذا IBaction - كان اتصال هذا الزر هنا. لذلك وكما ترون هنا، داخل تاتش أب متصل محدد دعا زر ضغط. لذلك، يمكننا أن نذهب في الواقع من خلال الحركة مرة أخرى، وهنا، من خلال اتخاذ تاتش أب داخل وسحبه إلى مالك الملف، ومن ثم انقر على زر ضغط. الآن، دعونا تشغيل التعليمات البرمجية لدينا. وحتى الآن، يعمل هذا الزر الآن و سوف تأخذنا إلى الصفحة التالية. و، من حيث تحكم رأينا، هذا هو قطعة من التعليمات البرمجية التي استغرق رعاية من ضغط زر. ومن المهم أن نلاحظ هنا، أن لقد خلق نوع آخر من رأي دعا تحكم جدول تحكم الرأي. لذلك، وكان هذا مماثلة إلى الوراء في القصة المصورة، عندما جره أحد هذه طريقة عرض جدول وحدات التحكم في لوحة العمل. أنا خلق آخر مؤشر إلى وحدة تحكم عرض جدول، الوك والحرف الأول جي ذلك، والقيام بعد ذلك تحكم الملاحة دوت النفس، دفع ViewController، وهذا جديد viewController. ولقد حدد الرسوم المتحركة نعم، لأنه الآن داخل بلدي التطبيق، وأنا نريد أن نرى في الواقع الرسوم المتحركة تسير من الصفحة الرئيسية إلى طاولة تحكم الرأي. الحضور: هل لا يزال يقلق حول جمع القمامة؟ RHED شي: ما هذا؟ لا. لذلك، كان السؤال، هل لديك للعمل مع جمع القمامة؟ لذلك، كان كسكودي 4 مثل مركز البحوث الزراعية، والتي هي عد مرجع التلقائي. وهكذا، وعادة عند بدء تشغيل جديدة المشروع، هل تحقق ذلك، لأن لا أحد يريد حقا للتعامل مع تحرير الذاكرة والاشياء. ولكن أعتقد في كسكودي 5، ليس هناك حتى هذا الخيار على المشروع الجديد. لذلك، فإنه تلقائيا يفعل ذلك بالنسبة لك. نعم؟ الحضور: هل تقوم بتصدير PDF في لوحة العمل الخاصة بك؟ RHED شي: نعم، بالتأكيد. لذلك، كل هذه سوف تدرج في شفرة المصدر، لذلك يا رفاق يمكن أن تحقق من المشروع كسكودي الفعلية لذلك. نعم؟ الحضور: ولكن، أعني، مثل، يمكنني طباعة PDF مع بلدي القصة المصورة؟ إذا أريد فقط أن تصدير الصور لإظهار شخص ما. RHED شي: أوه نعم. أعتقد، ربما، يمكنك فقط أخذ لقطة الشاشة. نعم، وإرسالها شاشة لقطة أو شيء من هذا. نعم. لذلك، دعونا نرى. في مصلحة من الزمن، أعتقد هذا كل لتر يمكن أن تغطي اليوم. ولكن، وأنا أعلم هذا، في الواقع، فقط بالكاد لمس سطح دائرة الرقابة الداخلية التنمية. لذلك، لا تتردد في الاتصال بي إذا لديك أي أسئلة حول دائرة الرقابة الداخلية التنمية. ونأمل، سوف تكون قادرة على تنظيف بعض من التعليمات البرمجية للمصدر ملفات التعليمات البرمجية، بحيث سيكون لديك بعض أمثلة جميلة حقا للعمل مع. بخلاف ذلك، إذا كنت تسير الرجال إلى CS50 Hackathon، وأنا قد تكون أو لن يكون هناك، وأستطيع أن أساعد مع بعض تطوير دائرة الرقابة الداخلية أيضا. لذلك، شكرا جزيلا، والرجال.