[Powered by Google Translate] [سیمینار] [iOS: ایک مالک کی طرح اطلاقات لکھنا] [ٹومی MacWilliam] [ہارورڈ یونیورسٹی] [یہ CS50 ہے.] [CS50.TV] ٹھیک ہے، سب، iOS کا استقبال: ایک مالک کی طرح اطلاقات لکھنا. یہ سیمینار فون کے لئے اطلاقات کو لکھنے پر توجہ مرکوز کی جا رہی ہے اور رکن کے لئے کے نتیجے میں اطلاقات لکھنے، اور اسی طرح ہم نے بنیادی طور پر کے ذریعے چلنے کے لئے جا رہے ہیں کس طرح ایک اپلی کیشن کو بنانے کے لئے کے ایک جوڑے کے مختلف مثالیں Tic دوسس پیر کی طرح ایک سادہ کھیل، یا اگر آپ کو نیوز ریڈر کے کسی نہ کسی طرح ایک اپلی کیشن بنانے میں زیادہ دلچسپی رکھتے ہیں یا کچھ اور ہے کہ انٹرنیٹ میں وہ ساتھ ساتھ کے بارے میں بات کریں گے کے ساتھ انٹرایکٹ کر سکے. یہ ہمارا مختصر ایجنڈا ہے. IOS اطلاقات مقصد C-نامی زبان میں لکھا جاتا ہے، اور اسی طرح یہ ایک چھوٹا سا C کی طرح لیکن واقعی نہیں بالکل تھوڑا سا ہے، تو ہم زبان خود کے بارے میں تھوڑا بہت بات کر جائے گی اور پھر کس طرح فون اس اپلی کیشن کو کہا جاتا XCode پروگرام کا استعمال کرتے ہوئے اطلاقات کی تعمیر، اگر آپ اسے ڈاؤن لوڈ نہیں کیا ہے ابھی تک ڈاؤن لوڈ، اتارنا اب شروع کرنے کے لئے آزاد محسوس کرتے ہیں. کئی گیگا بائٹ ہے. یہ اپلی کیشن سٹور پر مفت ہے، تو آپ کو میک ہے کی ضرورت ہو گی مثالی طور پر OS ایکس کا تازہ ترین ورژن چل رہا اگر آپ ان کے ساتھ نہیں ہو مسئلہ نہیں. ہم نے آپ کے استعمال کے لئے سائنس دستیاب مرکز میں Macs ہیں XCode نصب، تو ان کی ترقی کے لئے استعمال کرنے کے لئے بلا جھجھک. اگر آپ کو ایک اپلی کیشن کرنا چاہتے ہیں لیکن ایک میک نہیں ہے، فکر نہ کرو. کیمپس وسائل کی اس کے لئے بہت کچھ ہے. اور تو ہم مختلف اطلاقات کو آپ کو بنا سکتے ہیں کے 2 بڑے مثالیں شامل کرنے جا رہے ہیں. مقصد C-تکنیکی C. کے سپر سیٹ کیا کہتے ہیں اس کا مطلب یہ ہے کہ ہے کہ کسی بھی C کوڈ بھی درست کوڈ مقصد C ہے. اس کا مطلب یہ ہے کہ ہم ڈکٹ کی قسم C. کچھ اضافی خصوصیات پر ٹیپ ان کی خصوصیات میں سے کچھ کبھی malloc دوبارہ لکھنے شامل نہیں ہونے، بھگوان کا شکر ہے، ان پاگل اشارہ کے بارے میں فکر کرنے کی ضرورت ہے اور انہیں آزاد اور جو چیزیں آپ سی کے بارے میں نفرت کرتا اور اس قسم کا مقصد C میں چلے گئے. اب، اس کا مقصد C-بھی ایک بہت بڑا معیار لائبریری ہے، لہذا بہت زیادہ فعالیت مقصد C-مفت اندر کے لئے ہے. جب ہم PHP لکھ رہے تھے یاد ہم نے محسوس کیا ہے کہ ہم سے چلا گیا یہ سب سے چھوٹی ان تمام پاگل چیزیں جو آپ کر سکتے ہیں کے وشال لائبریری کی زبان ہے. ایک ہی بات iOS میں ہوتا ہے. بدھ کیلنڈر کی طرح چیزوں کے لئے اشیاء ہے، اور سچ میں کچھ آپ کو شاید مقصد-C کے عمل میں پہلے سے ہی موجود ہے ممکنہ طور پر سوچ سکتے ہیں. مقصد C-کا مقصد حصہ کچھ حوالہ ہے کہا جاتا پروگرامنگ آبجیکٹ پر مبنی. یہ ایک نیا تصور کی طرح ہے، لیکن ہم اصل میں زیادہ تر سیکھا ہے ان تصورات کی پہلے ہی بہت ہے. آبجیکٹ پر مبنی پروگرامنگ کے پیچھے خیال یہ ہے کہ آپ کو تشکیل جا رہے ہیں ان چیزوں کے ارد گرد آپ کے کوڈ کا ایک بہت کلاس کہا جاتا ہے، اور ان کلاسوں نے واقعی structs عما ہیں. struct کے اندر ہم نے بنیادی طور پر یہاں کہا کہ ایک بات یہ ہے، اور اس بات کے ارکان ہو سکتا ہے. مثال کے طور پر، ایک لنک کی فہرست میں ایک نوڈ سے دوسری چیزوں کے کر سکتے ہیں ہے ایک قیمت کی طرح،، فہرست میں اگلے نوڈ پوائنٹر اور مل کر کہ پوائنٹر اور اس قدر struct کی یہ ایک مثال کے طور پر مشتمل ہے. طبقات بہت ملتے جلتے ہیں سوائے کلاس ان کے اندر کام بھی کر سکتے ہیں. جب ہم نے ایک struct کا اعلان کر دیا ہے، ہم int ن یا نوڈ اگلے * ہی کہہ سکتا ہے. اب ہم مقصد C کے ساتھ کام کرتا ہے اصل میں ڈال کر سکتے ہیں کے اندر وہ چیزیں. ایک اور چیز کلاس میں کہا گیا ہے کہ کر سکتے ہیں ہے کہ وہ دوسری کلاس سے ڈیٹا وارث کر سکتے ہیں. مثال کے طور پر، ہم نے کلاس مقصد C بلٹ میں ایک گروپ میں تلاش کریں گے. ان میں سے ایک طبقے ہو سکتا ہے کہ تو پردے کے لئے نظر کی نمائندگی کرتا ہے، اور اس لئے میں کہہ کر میرے اپنے نقطہ نظر کو لاگو کرنے کے لئے کرنا چاہتے ہیں ہم بنیادی طور پر ایپل میں سے زیادہ کسی کا کہنا ہے کہ، شاید واقعی اچھے لوگ، میرے لئے اس کلاس نے لکھا ہے، اور یہ بٹن کی نمائش جیسی چیزوں ہینڈل یا سکرین دے، اور ہم واقعی دکھ ہو گا کہ تمام فعالیت خود کو لاگو کرنے کے لئے، اور اسی طرح صرف کی طرف سے ڈیٹا inheriting ہمارے پاس سب کچھ ہے کہ آپ اس کلاس میں کیا کہہ سکتے ہیں میں نے بھی میری کلاس کے اندر چاہتے ہیں، اور پھر میں کچھ دیگر چیزیں کرنے کے لئے جا رہا ہوں، یعنی ایک اپلی کیشن پر عمل در آمد کی. یہ ہے کہ وہ کیا لفظ وراثت کا مطلب ہے کہ. ہم نے ایک سے زیادہ ٹھوس مثال کے طور پر دیکھیں گے. اور آخر میں، آبجیکٹ پر مبنی پروگرامنگ کے ساتھ کلید یہ ہے کہ یہ ڈیٹا encapsulation کی طرف جاتا ہے. میں ہماری پریشانی میں سے کچھ کا تعین کرتا ہے ہم ان بڑا، عالمی متغیر کر سکتے ہیں اور ہر جگہ globals، اور یہ کہ ہے کہ ہم کس طرح ریاست کے ٹریک کو برقرار رکھنے چاہئے. ہے. کلاس کے ساتھ ہم کسی چیز کے اندر کے بارے میں معلومات encapsulating شروع کر سکتے ہیں. اگر ہم ہمارے اپلی کیشن پر ایک سکرین ہے، ہم سے کوئی ڈیٹا نہیں کی ضرورت ہے اس کے بارے میں ہمارے اے پی پی کے اندر میں ایک اور سکرین، اور اس کلاس کے اندر اندر چیزوں encapsulating کی طرف سے اس اصل کی طرف جاتا ہے زیادہ بہتر کے کوڈ کا ڈیزائن، اور یہ اضافی خصوصیات میں سے کچھ کے ساتھ ممکن ہے مقصد C-. Forewarning، مقصد C-نحو کیلے ہے. یہ کچھ نہیں ہم پہلے دیکھا ہے کی طرح ہے، تو یہ سیکھنے وکر عادی ہو تو تھوڑا سا ہے کیا اس heck کیا مطلب ہے؟ لیکن ایک بار آپ نے پہلے کہ ابتدائی سیکھنے وکر یہ واقعی، واقعی ہموار ہے اطلاقات لکھنا شروع. ایک کلاس کا اعلان کرنے کے لئے، یہاں کہنا میری کلاس ہے، یہ موجود ہے، اور شاید یہاں کچھ چیزیں ہیں کہ میں بعد میں وضاحت کرنے جا رہا ہوں، میں @ انٹرفیس کہنے جا رہا ہوں. میں @ انٹرفیس کہنے جا رہا ہوں. میں میری کلاس میں ایک نام دینے جا رہا ہوں. اور پھر بعد میں کہیں اور میں آخر @ کہنے جا رہا ہوں، @ انٹرفیس اور @ اختتام کے درمیان میں سب کچھ میری کلاس ہو جائے گا. یہ ہمارے H فائلوں کے اندر کیا ہے جا رہا ہے. جیسا کہ سی ہمارے H فائلوں. بنیادی طور پر یہاں نے کہا کہ کچھ چیزیں موجود ہیں. میں تم سے ضروری نہیں کہہ رہا ہوں جو انہوں نے ابھی تک کرتے ہیں، لیکن سنکلک جانتے ہیں کہ وہ موجود ہیں کی ضرورت ہے. بعد ہماری میٹر کے اندر فائلوں کیونکہ مقصد C-M- کہاں ہے ہم اصل میں ان کلاسوں کی وضاحت کرنے جا رہے ہیں. ہمارے سی فائلوں. کی طرح، ہم نے افعال کے لئے عمل درآمد کو فراہم کی. اندر ہم یہاں ہماری فائل میٹر. کہنے جا رہے ہیں وہ ہے جو کے افعال میں سے سب میری کلاس کیا وہ سب کے اندر. اور آخر میں ایک struct، اندر ہم ان گھوبگھرالی منحنی خطوط وحدانی کے اندر کہہ سکتے int ن یا نوڈ اگلے *، اور ہم مقصد C میں مطلوبہ الفاظ @ املاک کو استعمال کرنے کے لئے جا رہے ہیں، اور یہ ہے جو خصوصیات کی وضاحت کرنے جا رہا ہے، یا کام کرتا ہے نہ کہ میری کلاس کا ایک حصہ ہیں. افعال کالنگ مقصد C-بھی کیلا ہے. جب ہم سی افعال کا اعلان کیا ہم int FOO کی طرح کچھ نے کہا کہ اور کھلے قوس اور پھر اس کے دلائل کی ایک فہرست دی ہے. یہ وہی ہے جو طریقوں یا افعال اعلان مقصد C کی طرح لگتا ہے. اگر میں ایک تقریب یا ایک طریقہ کا اعلان کرنا چاہتے ہیں جہاں میں طریقہ کہہ رہا ہوں واقعی میں صرف ایک تقریب میں ہے کہ ایک طبقے کے ایک رکن ہے، تو تبادلہ کی قسم، لیکن سچ میں نہیں، تو میرے طریقے کے اندر میں ایک نیا طریقہ تشکیل دینا چاہتے ہیں. یہ کچھ بھی نہیں ہے میں واپس جا رہا ہے، تو اس قسم کی باطل ہو جا رہا ہے. یہ میری تقریب کی واپسی کی قسم ہے. اب ہم parens یہاں ہے کیونکہ مجھے پتہ نہیں ہے. اگلا، دوسرا اپنی تقریب کے نام پر کی جا رہی ہے، اور پھر آخر میں ہم صرف ہم سی میں تھا کی طرح ایک نیم وقفہ ہے کیا یہاں نیا ہے اس آدمی ہے. یہ ہیفین اصل میں ضروری ہے، اور کیا ہے اس کا کہنا ہے کہ ہے کہ یہاں یہ طریقہ ایک طبقے کی ایک مثال کے طور پر فون کیا ہوگا. کے بعد ہم نے ہمارے structs کا اعلان شاید ہم جیسے کچھ کہا struct نوڈ N، کہ اور اصل میں پیدا یا ان structs میں سے ایک مثال تاکہ میں کام کر بھی شروع کر سکتا ہے اس کے اندر کیا ہے، تو اس ڈیش کا مطلب یہ ہے کہ ہم نے کلاس instantiate ہم مثال طرح کہ struct اس سے پہلے کہ ہم اس پر اس طریقے کو فون کر سکتے ہیں. اگر میں اپنے طریقے کے دلائل انہوں نے مزید کہا شروع کرنا چاہتے ہیں اس سے بھی زیادہ کیلے ملتی ہے. اپنے طریقے کا نام ہے. اس وقت میں ایک بڑی آنت رہا ہوں اور یہ بڑی آنت کے بعد اسے یہاں کا کہنا ہے کہ کچھ دلائل آتا ہے. یہ طریقہ ایک دلیل لیتا ہے. اس کی دلیل کی قسم ایک int ہے، اور یہ دلیل کے نام پر ہے یا متغیر ہے کہ میں نے طریقہ کار کے اندر کا استعمال کرتے ہوئے شروع کرنے کے لئے جا رہا ہوں میں کہا جاتا ہے. ایک بار پھر، یہ طریقہ ہے. یہ ایک دلیل لیتا ہے. اگر آپ مزید دلائل انہوں نے مزید کہا شروع کرنا چاہتے ہیں تو زیادہ کیلے ہو جاتا ہے کہ ہم اس برہدانتر ہے جو یہاں کا کہنا ہے کہ دلائل کی فہرست آتا ہے ہے. یہ پہلی دلیل ایک عدد صحیح ہے. اب، یہ دوسری دلیل دلچسپ ہے. متغیر کہ میں میری تقریب کے اندر استعمال کرنے جا رہا ہوں ہے F کہا جاتا ہے، تو اندر میں میری تقریب کے کہہ سکتے F + = 1 یا کچھ اور. یہ بات بنیادی طور پر کہ بحث یا پیرامیٹر کے لئے ایک چابی ہے. جیسا کہ ہم نے کلیدی قدر جوڑوں تھے اور JSON یا ساہچری arrays کی طرح کچھ مقصد C-کہتے ہیں، ٹھیک ہے کا فیصلہ کیا، صرف اس لئے کہ یہ بہت واضح ہے جب آپ کو ایک طریقہ ہے جو ان تمام پیرامیٹرز ہیں کہتے ہیں میں اصل میں ان کے نام کے لئے جا رہا ہوں. جب آپ کے پاس ایک طریقہ کہتے ہیں، آپ andFloat اصل میں کہیں گے، اور پھر آپ کو اس کے پاس اندر کریں گے دلچسپ بات یہ ہے کہ یہ ایک نام نہیں ہے، لیکن دوسرے پہلوؤں ہیں، اگر ایسا ہے تو ہم نے ایک 3rd دلیل تھی میں andFloat کہہ سکتے اور ایک اور فلوٹ اور اسی طرح کی. جب میں ان طریقوں کو کہتے ہیں یہ کورس کیلے کی ہے، اگر ایسا ہے تو میں کسی چیز ہے، اور میں نامی FOO طریقہ کار کی وضاحت، اور میں نے اسے فون کرنے کی بجائے FOO کھلا / بند parens کا کہنا ہے چاہتے ہیں میں بریکٹ کھولنے کے لئے جا رہا ہوں. یہ میرے طریقے کے نام پر ہے. میں خانے کو بند کرنے جا رہا ہوں، اور یہ اعتراض ہے میں اس پر بات کر رہا ہوں. یاد رکھو، ان طریقوں میں سے تمام اقسام کے اندر اندر موجود کیونکہ کلاس میں ان کے اندر وضاحت کے طریقے کر سکتے ہیں. یہاں میں منمانے کچھ طبقے کی کسی چیز کو پیدا کیا ہے، اور اس سے یہ ہے کہ ایسا کرنے کے لئے نحو ہے. اس میں کسی چیز کو بنانے کے 2 مراحل ہیں. کا کہنا ہے کہ اس سلسلے میں پہلے قدم کے میں خلا مختص کرنا چاہتے ہیں ہے. کیا یہ ایک malloc کے برابر ہے. ہم malloc نہیں کہنے کی ضرورت نہیں ہے. ہم نے میٹر گرا دیا، alloc اسے بنایا، اور میٹر کے ساتھ سی کی جگہ ہے. ہم alloc کچھ کے بعد تو ہم اس کی ابتدا کرنے کی ضرورت ہے. بنیادی طور پر جب آپ اشیاء بنانے کے آپ کو کچھ منطق ہے کرنا چاہتے ہیں کر سکتے ہیں کہ جب وہ پیدا کر رہے ہیں executes، آپ کو کچھ پہلے سے طے شدہ اقدار میں منتقل کر سکتی ہیں یا اس طرح کچھ، اور تو اس init طریقہ ہے جو اصل میں اعتراض پیدا. ہم پہلے خلا مختص، جیسا کہ ہم C میں کیا، اور پھر ہم اس کی ابتدا، جو یا کر سکتے ہیں ایک بہت ساری نہیں. اس کے بعد ہم کسی چیز کو اے میں اس بات کو واپس آ رہے ہیں. یہاں ایک ستارہ ہے کیونکہ یہ تکنیکی طور پر ایک پوائنٹر ہے، لیکن فکر نہ کرو، اشارہ ہے کہ اب مقصد C میں بڑی ڈیل نہیں ہیں. اب ہم نے یہ کہا جاتا NSObject کلاس مثال ہے، اور یہ تو صرف ایک بے ترتیب کلاس ہے کہ ایپل ہے ہے. ہم اس مثال ہے، اور اب میں اس قسم کی ایک مثال کے طور پر ہے اس شئی کو اے میں، تو اس کا مطلب یہ ہے کہ اگر میں وضاحت کی گئی ان طریقوں میں نے ان سے اس طرح کہہ سکتے ہیں. اسی طرح، اگر میں ایک دلیل کے ساتھ ایک طریقہ پر کال کرنا چاہتا تھا، تو اس بار طریقہ ہے، یہ ایک دلیل لیتا ہے، اور یہاں باز ہے: qux طریقہ ہے، تو اس میں 2 دلائل لیتا ہے. یہ اس شئی کو اے ایک تقریب میں بلا رہا ہے. احساس ہے؟ نحو کا کوئی مطلب ہے، لیکن آپ کی قسم کے لئے استعمال کیا ہونا چاہئے. ٹھیک ہے، چلو کچھ چیزیں ہیں جو مقصد C-میں تعمیر کر رہے ہیں کے بارے میں بات C. میں ضروری نہیں تھے تعمیر C میں ہم اس قسم کی یہ پاگل کردار arrays کے طور پر ڈور کے ساتھ سامنا کرنا پڑا، اور یہ واقعی پریشان ہے. مقصد C-ہم سب کے لئے میں تعمیر ہونے والوں ہے، اور اس میں بنا ہوا ہے یہ کہا جاتا NSString کلاس کا استعمال کرتے ہوئے. جب میں ایک NSString ہم زیادہ arcane نحو ہے بنانا چاہتے ہیں. بلکہ "cs50" ہم کا کہنا ہے کہ @ "cs50" کہہ رہے ہیں سے اور اس مقصد C میں ڈور اعلان کے لئے نحو ہے. یہ بھول جاتے ہیں، ایسا نہیں کرنا بہت آسان ہے. اب، ایک بار میں یہ ہے، یہ ایک تار ہے، لیکن محسوس یہ واقعی صرف کسی چیز ہے. میں نے کہا کہ NSString، جس کا مطلب ہے کہ میں کلاس مثال NSString، جو کسی اور نے میرے لئے لکھا نامی، اور وہ اس کے بارے میں بہت اچھے تھے، اور تو اب میں اس پر طریقوں کو فون شروع کر سکتے ہیں. اگر میں اس کے اعتراض پر طریقہ کی لمبائی فون آپ کے وزٹرز کا ریکارڈ رکھا سٹرنگ کی لمبائی واپس جا رہا ہے. یہ سی میں صرف strlen کی طرح ہے یہ 4 واپس آ جائیں گے. اسی طرح ایک اور طریقہ کار کے بارے میں دیکھ بھال کرنا چاہتے ہیں کر سکتے ہیں اس characterAtIndex ہے. یہ ایک طریقہ ہے کہ اس کے تار پر کا کہنا ہے کہ ہے میں آپ zeroth کردار کو حاصل کرنے کے لئے چاہتے ہیں، اور اسی طرح یہ آپ کے وزٹرز کا ریکارڈ رکھا کردار C واپس کریں گے، اور وہاں ان طریقوں میں سے ایک پوری جھوبڈ ہے کہ آپ واقعی آسانی سے گوگل کر سکتے ہیں ہے. ایپل کی دستاویزات عظیم ہے اور ہم تھوڑا سا میں اس پر ایک نظر لے لیں گے. وہ ڈور ہیں. ہم نے بھی متغیر سائز arrays اندر تشکیل دے دیا گیا C میں یاد ہے جب ہم نے ایک صف کا اعلان کر دیا ہم کا کہنا ہے کہ آپ کے پاس 5 عناصر ہیں، کہانی کا اختتام ہے. ہم شروع کریں جب ہم جاوا سکرپٹ اور پی ایچ پی سے ہے، عناصر کو انہوں نے مزید کہا یا عناصر منتقل طرح کام. ہم مقصد C میں بھی ایسا ہی کر سکتے ہیں. بجائے عام C راستے میں ایک صف بنا ہم دوبارہ ایک NSMutableArray کہا جاتا کلاس ہے. بھی NSArray ہے، اور یہ بنیادی طور پر کچھ صف encapsulate کی جا رہی ہے. اس کا کہنا ہے کہ پہلی چیز جو میں کرنا چاہتا ہوں ہے میں مختص کرنا چاہتے ہیں ایک نئی صف کے لئے جگہ، اور اس کے بعد میں نے اسے مختص میں نے تو اس کی ابتدا کرنے کی ضرورت ہے. ایک بار پھر، صرف ان 2 طریقوں کو بلا رہا ہے. اب یہ ہے کہ اس شئی کا اندر ایک کا مطلب ہے کہ میں ایک خالی صف وہاں بیٹھی ہے. اگر میں اس صف میں کچھ اضافہ کرنا چاہتے ہیں، میں addObject طریقہ کہہ سکتے ہیں. میں صف ایک کسی چیز کو شامل کرنا چاہتے ہیں، اور میں CS50 سٹرنگ کو شامل کرنے کے لئے چاہتے ہیں. اگر میں اس کے برعکس دور کرنے کے لئے میں یہ کہہ سکتا ہوں چاہتے تھے میں کرنا چاہتے ہیں صف پر پہلی جگہ پر مقصد کو ہٹانے یا اعتراض. احساس ہے؟ ٹھیک ہے، تم نے قسم کی اس مربع بریکٹ بات کرنے کے لئے استعمال کرنے کے لئے. ویسے، آپ کے پاس ایپل کی لائبریریوں کے ایک بہت کے اندر اس NS نظر آئے گا. NS اصل میں اگلا قدم، جس میں اسٹیو نوکریاں پہلے کمپنیوں میں سے ایک تھا کے لئے کھڑا ہے، اور یہ کہ جہاں وہ واقعی کے کوڈ کا ایک بہت لکھنے شروع کر دیا میک OS X اور دوسری چیزیں سب کے لئے بنیاد کی طرح کے طور پر، اور تو اس NS ہے یہ اچھا میراث بھی ویسی ہی کی طرح پہلے کمپنیوں میں سے ایک چللاو واپس جب ایپل نے سب سے پہلے شروع کیا گیا تھا. وہ ہر جگہ ہے. کی ایک سے زیادہ جامع مثال کے طور پر مقصد C پر ایک نظر لے. یہاں میں XCode کے اندر ہوں. یہاں حاصل کرنے کے لئے، میں نے سب سے پہلے اپلی کیشن سٹور سے XCode ڈاؤن لوڈ، اسے کھول دیا، اور اس کے بعد میں نے فائل گئے تھے یہاں، یہاں نئے، اور پھر منصوبے. کے بعد مجھے کیا ہے کہ میں نے سب سے ان کے اختیارات کیا میں بنانا ہے، اور ہم نے ان کے اختیارات پر ایک نظر بعد میں لے لیں گے، لیکن صرف اس مثال کے لئے، کیونکہ ہم ابھی تک ایک اپلی کیشن ہے اصل میں نہیں کر رہے ہیں جا میں یہاں آیا، اور میں نے کہا کہ کمانڈ لائن کا آلہ، اور یہ ایک اپلی کیشن ہے کہ میں کمانڈ لائن میں چلا سکتا ہے ہے جیسا کہ ہم ہے C. سے چل رہا یہ ہے کہ میں کس طرح اس منصوبے کو پیدا کیا، اور اب میں یہاں ہوں، تو اس فائل میں پہلا دیکھو، اور یہ بہت واقف نظر آنا چاہئے. میں ایک int نام ہے. میرے دوست کے argc، میرے دوسرے دوست argv ہے. اور ہم دیکھتے ہیں کہ یہ میری پہلی درخواست کا مقصد C کے لئے لاگ ان کی بات یہ ہے کر سکتے ہیں. اب ہم اس کو نظر انداز کر سکتے ہیں. یہ بنیادی طور پر کچھ یاد داشت مینجمنٹ چیزیں یہ ہے کہ آپ کو واقعی نہیں کریں گے کبھی کے بارے میں فکر کرنے کی ضرورت ہے. چلو یہ پہلی بلاک میں یہاں دیکھو. یہ پہلی سطر، اگر میں کہتا ہوں Student کی * یلس = [[Student کی alloc init]] کیا ہے کہ کر؟ یہ پہلا طالب علم، یہ شاید ایک کلاس ہے. یہ ایک کلاس ہے کہ ایپل نے لکھا نہیں ہے، لیکن یہ ایک کلاس ہے کہ میں نے لکھا ہے. پہلی چیز جو میں کرنا چاہتا ہوں ہے میں ایک نیا طالب علم کے لئے جگہ مختص کرنا چاہتے ہیں، اور پھر میں نے اسے ابتدا کرنا چاہتے ہیں، تو یہ آپ کے وزٹرز کا ریکارڈ رکھا واپس دیتا ہے اس نئے طالب علم اعتراض، اور میں نامی یلس متغیر میں اس ذخیرہ کرنے رہا ہوں. اس کلاس سے کہاں سے آئے؟ ٹھیک ہے، یہاں بائیں طرف ہیں میری منصوبہ کے اندر مختلف فائلوں کی سب. ہم یہاں میں ایک Student.h ہے اور Student.m ہے کر سکتے ہیں. H فائل، یاد ہے، جہاں میں سب کا اعلان جو کلاس کے اندر اندر موجود گی. چلو، اس پر ایک نظر لے. ٹھیک ہے، یہاں ہم اس @ انٹرفیس ہے، اور اس کا کہنا ہے کہ جو یہاں آتا ہے میری کلاس کے اندر اندر سب کچھ موجود کا اعلان کیا. اس وقت میں نے ایک بڑی آنت ہے. اس وقت میں اس NSObject چیز ہے. یہ بڑی آنت وراثت سا ہم پہلے تھوڑا سا پر بحث کر رہے ہیں کا ابیوینجک ہے. اس کا کہنا ہے کہ سب کچھ ایک NSObject کر سکتے ہیں NSObject یہ کسی کی طرف سے لکھا گیا کلاس کہاں ہے، سب کچھ اس NSObject کر سکتے ہیں، میں ایسا کرنے کے قابل بننا چاہتا ہوں. کہہ کر: NSObject اس کا مطلب یہ ہے کہ بنیادی طور پر میں ایک اور طبقے کی فعالیت کے سب وراثت میں ملا. یہ واقعی کے وزٹرز کا ریکارڈ رکھا جائے گا. میرے مختلف طریقوں اور خصوصیات میں اس کا استعمال کر سکتے ہیں ایک مکمل جھوبڈ دی. یہاں ذیل میں 2 خصوصیات پیدا کر رہا ہوں. یہ میرے طالب علم کا مطلب ہے کہ، اگر یہ ایک struct تھے، یہ 2 چیزیں ہو گی میرے struct کے اندر، تو ہر طالب علم کو ایک کا نام ہے جو ایک تار ہے، اور ایک طالب علم بھی ایک جماعت ہے، جس میں ایک int ہے. آخر میں، یہاں ذیل میں اپنے طالب علم کے لئے ایک طریقہ تخلیق کرنے جا رہا ہوں. میں نے فون کیا میرا طریقہ، initWithName، اور یہ ایک دلیل لیتا ہے، اور یہ دلیل ایک سٹرنگ ہے، اور میں نے اس کا نام ہے. اب ہم کس طرح ہم واقعی اس کلاس کو لاگو کو دیکھو. یہاں، اب میں میرے M فائل کے اندر ہوں، عمل کے لئے میٹر، مجھے لگتا ہے. میں میری عملدرآمد میرا آخر، اور یہاں جہاں میں اصل میں وضاحت کر رہا ہوں کیا initWithName ہے. میں initWithName، اپنے پیرامیٹر کے نام پر، اور پھر یہ ہے جہاں میں اصل میں ایک طالب علم کی تشکیل کر رہا ہوں، اور تو یہ تھوڑا سا خفیہ ہے، لیکن یہ ہی boilerplate کی طرح ہے ہے کہ آپ کو آپ کے constructors میں شامل کرنا چاہتے ہیں. یہ ابتدا یہاں تقریب، initWithName، تعمیر کی ایک قسم ہے. تم بنیادی طور پر ایک نئے طالب علم اعتراض کی تعمیر کر رہے ہیں اور شاید اس کے اندر کچھ ڈیٹا بھیجنے. پہلی چیز جو میں کرنا چاہتا ہوں ہے میں اس سپر بات پر init فون کرنا چاہتے ہیں. یاد رکھیں کہ میں H فائل میں جب یہاں واپس نے کہا کہ کہ سب کچھ ایک NSObject ہے ایک طالب علم بھی ہے. اس کا مطلب یہ ہے کہ جب میں ایک طالب علم ہے، میں بھی کرنے کی ضرورت نہیں ہے بناتے ہیں یقینی بنائیں کہ NSObject کہ میں سے اس ڈیٹا کے تمام inheriting رہا ہوں بھی مناسب طریقے سے initialized. یہ میں کیا کہنے کی ضرورت سپر اصل میں والدین طبقے کا حوالہ جا رہا ہے کہ میں سے inheriting رہا ہوں، تو مجھے یقین ہے کہ میں ابتدا کرنا چاہتے ہیں سب کچھ ہے کہ میں پر منحصر ہے اس سے پہلے کہ میں اس کو استعمال کرنے کی کوشش کر رہے شروع کر رہا ہوں. پھر اگر وہ initialized صحیح طریقے سے اس سے صرف یہ کہہ رہی کی طرح ہے اگر malloc کیا، شہوت انگیز null واپس نہیں تو میں کچھ خصوصیات کی ترتیب کرنا شروع کر سکتے ہیں. جاوا سکرپٹ اور پی ایچ پی میں ہم نے اس مطلوبہ الفاظ کے اس نے فون کیا تھا، اور اس کے ایک طبقے کی موجودہ مثال کے طور پر کہا جاتا ہے. مقصد C میں ہم نے یہ خود کہتے ہیں. جب میں self.name کا کہنا ہے کہ، اس کا مطلب ہے کہ اعتراض میں صرف پیدا کیا جب میں نے کہا کہ طالب علم alloc init، کہ مجھے واپس کسی چیز کو دینے جا رہا ہے. اس کا مطلب ہے کہ میں اس شئی کا نام مقرر کرنا چاہتے ہیں جو کچھ بھی میں صرف اندر منظور سی طرح، ہم اس نقطہ کے ساتھ کے اراکین تک رسائی حاصل کرتے ہیں، تو self.name طالب علم شئی کا نام کا کہنا ہے کہ اب جو کچھ بھی آپ نے ابھی اندر منظور اور تو آخر میں اس کو واپس تو میں واقعی کچھ واپس حاصل کر سکتے ہیں. سوال؟ ٹھیک ہے، تو یہ خود = سپر init، اگر آپ کے پاس وراثت چیزیں مکمل طور پر نہیں سمجھ نہیں فکر مت کرو. صرف اتنا جانتا ہوں کہ اگر تم نے کبھی خود اپنے init طریقہ بنانے کے لئے کرنا چاہتے ہیں یہ کرتے ہیں، اور تم جانا اچھا ہو جائے گا. جی ہاں >> [Student کی] کیا خیال ہے؟ اگر خود کا کیا مطلب ہے. اس کا مطلب یہ ہے جب ہم کچھ ہم ہمیشہ اگر شہوت انگیز null برابر تھا کی جانچ پڑتال، malloc اور اگر شہوت انگیز null تھا، تو پھر ہم باہر ہو گیا تھا. یہ ایک ہی بات ہے، کیونکہ اگر اس کی واپسی، شہوت انگیز null، تو پھر ہم شاید seg غلطی جا رہے ہیں اگر ہم یہ جوڑتوڑ کرنے کی کوشش شروع کر دیں. کہ ہمارے طالب علم کلاس ہے. اس کا مطلب یہ ہے کہ ہم دو طریقوں میں سے ایک میں ہمارے طلباء کو ابتدا کر سکتے ہیں. اگر میرا کا کہنا ہے کہ طالب علم alloc init میں اس طریقہ کار کا استعمال نہیں کر رہا ہوں کہ میں نے صرف لکھا، اور اس کے بجائے میں alice.name صرف اسے کہہ سکتے ہیں، اور اب میں اس خاصیت کا نام قائم کرنے جا رہا ہوں. اسی طرح، اگر میں کہ initWithName طریقہ کو استعمال کرنا چاہتے ہیں میں alloc صرف، تو بجائے کہنا init کہہ رہے ہیں میں وہ طریقہ ہے کہ میں نے ابھی پیدا فون کرنے جا رہا ہوں، اور میں باب میں منظور کرنے جا رہا ہوں. اس وقت، اس شئی کو باب ایک باب کے برابر نام ہے. ٹھیک ہے، یہاں ذیل میں اس NSMutableArray ہے کہ ہم نے پہلے میں دیکھا کا استعمال کرتے ہوئے کر رہا ہوں. میں space.Then آونٹن رہا ہوں میں ایک نئی صف کی ابتدا کر رہا ہوں. میں اس کی 2 چیزیں شامل کی جا رہی ہوں. یہ صف اب طالب علم کی اشیاء کی ڈگری حاصل کی ہے. یاد رکھیں کہ کہیں میں کہنا ہے کہ اس کے طالب علموں کی ایک صف ہے کی کیا ضرورت تھی. میں نے کہا کہ یہ ایک صف مدت ہے،. پھر میں ڈال دیا ہے اس میں سے جو کچھ بھی اندر ہے کہ میں چاہتا ہوں کر سکتے ہیں. یہاں میں 2 اشیاء ہے. آخر میں، میں یہاں دوسرے اعتراض ہے، اس TF. یہاں TF.h میں بنیادی طور پر ایک ہی بات ہے. میں NSObject سے، اور راہ کی طرف سے inheriting رہا ہوں، جب آپ کلاس بنانے کے یہ سب آپ کے لئے کیا جاتا ہے، انٹرفیس boilerplate اس قسم کی ہے. یہ طالب علموں کی ایک خاصیت ہے. میں ایک جوڑے کے طریقوں ہے کہ ایک پوری بہت واقعی نہیں کرتے ہیں، اور تو اس کا مطلب ہے کہ بعد میں اس TF اعتراض بنانے کے میں اس طرح اس پر اس طریقے سے گریڈ کو فون کر سکتے ہیں. مقصد C-نحو پر کوئی بھی سوال ہیں اس سے پہلے کہ ہم کچھ اور میں منتقل شروع دلچسپ اطلاقات کی ترقی چیزیں؟ ٹھیک ہے، تو اصل میں ایک موبائل اپلی کیشن. اپنے فون اپلی کیشن کے بنیادی کلاس میں کہا گیا ہے کہ تم اندر کا استعمال کریں گے کنٹرولرز کہا جاتا ہے، اور ایک نقطہ نظر کنٹرولر بنیادی طور پر ایک سکرین کی نمائندگی کرتا ہے آپ کے اپلی کیشن کے اندر، اگر ایسا ہے تو میں موسیقی کے اپلی کیشن پر مثال کے طور پر میں ہوں، ایک نقطہ نظر کنٹرولر جس میں میں اپنے فون پر تمام نغمات دیکھنے کے نقطہ نظر کی نمائندگی کر سکتے ہیں. ایک اور نقطہ نظر کنٹرولر جب میں ایک گانے پر کلک کریں اور کھیل شروع کر سکتا یا جیسا کہ میں فنکاروں میں نیچے کھدائی کر رہا ہوں. ان مختلف سکرین کے ہر ایک مختلف نقطہ نظر کنٹرولر کے طور پر نمائندگی کیا جا سکتا ہے، اور ایک نقطہ نظر کنٹرولر واقعی میں صرف ایک طبقے کا کہنا ہے کہ اس کی سکرین کس طرح کام کرتا ہے ہے. چیزیں ایک نقطہ نظر کنٹرولر کے اندر، ہم خصوصیات کے لئے جا رہے ہیں، ایک بٹن کی طرح باتیں ہمارے خیال کنٹرولر کی ایک خاصیت جا رہا ہے. ہم بھی طریقے جا رہے ہیں، اور ان میں بنیادی طور پر ایونٹ handlers ہیں. یہ طریقہ کا کہنا ہے کہ جب آپ یہ بٹن دبائیں میں کچھ کرنا چاہتے ہیں، اور آخر میں ایک بار پھر، ہم اس خود مطلوبہ الفاظ کا استعمال کرتے ہوئے موجودہ مثال کے طور پر تک رسائی حاصل کرنے جا رہے ہیں. iOS میں انٹرفیس کے لئے کی تعمیر اصل میں ہے بہت، بہت آسان ہے. انہوں نے یہ اچھا ڈریگ اور ڈراپ انٹرفیس بلڈر نامی انٹرفیس ہے، اور 2 بنیادی تصورات میں کہا گیا ہے کہ اپنے مقصد C اپ انٹرفیس بلڈر تار IBOutlet اور IBAction ہیں. ایک IBOutlet صرف کا کہنا ہے کہ اگر آپ کو ایک جائیداد کا اعلان ہے کہ ایک بٹن ہے، اور آپ نے اسے آپ کی اصل UI میں کچھ ہک چاہتے ہیں، آپ کا کہنا ہے کہ یہ ایک دکان ہے جا رہے ہیں. اسی طرح، اگر آپ کو ایک ایونٹ ہینڈلر کی نمائندگی کرنا چاہتے ہیں تو آپ کا کہنا ہے کہ یہ ایک عمل ہے جا رہے ہیں. اصل میں اس گرافیکل نمائندگی تار اور اپنا کوڈ یہ بہت، بہت آسان ہے. اگر آپ ایک IBOutlet منسلک کرنا چاہتے ہیں، تمام تمہیں کیا کرنا ہے ہے کلک کنٹرول، اور ہم یہ واقعی جلد کی ایک مثال کے طور پر دیکھیں گے. کلک آپ کو کنٹرول جہاں یہ دیکھیں کنٹرولر کا کہنا ہے کہ. آپ کو انٹرفیس میں کھینچ کر لائیں جا رہے ہیں، یا اس کے برعکس، اگر آپ کو ایک ایونٹ ہینڈلر ہک کرنا چاہتے ہیں تو آپ انٹرفیس سے کھینچ کر لائیں جا رہے ہیں دوسری سمت میں ہے. ہم ایک بہت سادہ iOS مثال کے طور پر میں ایک نظر ڈالیں. میں ایک نئی منصوبہ بندی تیار ہوں. میں نے درخواست پر یہاں آنے جا رہا ہوں، اور میں اکیلی دیکھیں درخواست پر کلک کریں کے لئے جا رہا ہوں. میں اگلے کلک کرنے کے لئے جا رہا ہوں. میں اپنے منصوبے کا نام دیں گے. میں اسے خوش میں فون کرتا ہوں. دلچسپ بات یہ ہے، ایپل سنبھالنے آپ کو کسی مصنوعات کے بارے میں اس کے تیار پیدا کر رہے ہیں تاکہ تم اسے فروخت اور وہ پیسہ کمانے کے لئے کر سکتے ہیں کر سکتے ہیں. نیچے میں یہاں کا کہنا ہے کہ یہ ایک موبائل اپلی کیشن ہے کے لئے جا رہا ہوں. آپ نے ایک رکن کی اے پی پی کی تشکیل دیں، یا اگر آپ ان اطلاقات کی ایک بنانا چاہتے ہیں کر سکتے ہیں ہے کہ دونوں آلات آپ ایسا بھی کر سکتے ہیں کی حمایت کرتا ہے. یہ ہیں کیا آپ تمہاری checkmarks کی طرح نظر آنا چاہتے ہیں. آپ storyboards، جس پر ہم بعد میں دیکھیں گے استعمال کرنے کے لئے چاہتے ہیں، اور آپ کو یقینی طور پر خود کار طریقے سے حوالہ گنتی کا استعمال کرنا چاہتے ہیں، جو کہ ایک اچھی خصوصیت ہے جو آپ کو malloc اور آزاد کا کہنا ہے کہ کرنے سے روکتا ہے ہے. جب تک آپ کال malloc اور آزاد کرنا چاہتے ہیں، میں نے اس کی جانچ پڑتال کو چھوڑ گے. میں اگلے پر کلک کریں، اور آخر میں، اس نے مجھ سے پوچھا کہاں جا رہے ہیں میں اسے بچانے کے لئے کرنا چاہتے ہیں کریں گے. میں پیدا مارا، اور ہم یہاں جائیں گے. میں ایک نیا منصوبہ بنایا ہے. بائیں پر تمام فائلوں ہیں جو میری منصوبہ کے اندر ہیں ہیں، نوٹس اور یہ کہ میں ایک مکمل جھوبڈ ہے، اور میں نے کچھ بھی نہیں کیا. IOS بہت اچھا ہے. مثال کے طور پر،، اس ViewController.h یہ اپنے پہلے قول کنٹرولر کی نمائندگی کرنے جا رہا ہے، میرے اے پی پی کے اندر پہلی سکرین ہے. اب ہم جانتے ہیں کہ کیا یہ کہہ رہا ہے. ہم کہہ رہے ہیں میں یہ کلاس ViewController کو بلا رہا ہوں رہے ہیں، اور ایک ViewController سب کچھ ہے کہ ایک UIViewController ہے کرتا ہے، اور اس کے، پھر، کچھ کلاس ہے کہ ایپل نے لکھا ہے کہ ہمارے لئے ہاتھ چیزیں بہت کرتا ہے ہے پسند کی سکرین کو ظاہر. یہاں ہے جہاں میں وضاحت میرے خیال کنٹرولر کرتا ہے میں شروع کر سکتے ہیں، اور یہ پتہ چلا ہے کہ میں واقعی میں اس میں سے کسی کی ضرورت نہیں ہے. یہ boilerplate کوڈ ہے کہ ایپل کے وزٹرز کا ریکارڈ رکھا جائے گا. میرے مفت کے لئے فراہم کرتا ہے ہے. میں ہے کہ پہلی سطر کی ضرورت ہے، یا میں نے ایک کلاس کی ضرورت نہیں ہے، تو ہم اس سے چھٹکارا حاصل کر سکتے ہیں اور اس سے چھٹکارا حاصل کر سکتے ہیں. ٹھیک ہے، تو یہ میرا خالی سکرین ہے. اب ہم اس MainStoryboard.storyboard پر کلک کریں، اور یہ وہ جگہ ہے جہاں سے اسے دلچسپ حاصل کرنے کے لئے شروع ہوتا ہے. یہ میری اپلی کیشن پر پہلی سکرین کی نمائندگی کرتا ہے. اگر میں ایک بٹن کو شامل کرنے کے لئے چاہتے ہیں، میں HTML میں ایک بٹن ٹیگ بنانے کے لئے تھا. لوڈ، اتارنا Android میں آپ کو ایک بٹن کے ٹیگ کو پیدا کرنے کی ہے، لیکن اگر میں iOS میں نیچے نیچے دائیں یہاں آنے اور اگر میں یہاں اس 3rd ایک پر کلک کریں جہاں یہ آبجیکٹ کا کہنا ہے کہ، اور میں ذیل میں سکرال، یا میں بٹن کے لئے تلاش شروع کر سکتے ہیں کر سکتے ہیں. اور ایک بٹن نظر آئے گا، اگر ایسا ہے تو میں واقعی میں اور چھوڑ یہ حق وہاں کھینچ کر لائیں، میں صرف اپنے اپلی کیشن پر اس کی سکرین پر ایک بٹن کا اضافہ کر دیا ہے. اگر میں متن کو تبدیل کرنا چاہتے ہیں، میں اسے ڈبل کلک کر سکتے ہیں، کچھ enticing کی طرح کا کہنا ہے کہ "مجھے دبائیں." ٹھیک ہے، اب اگر میں اس اپلی کیشن کو چلاتے ہیں، تو ہم اسے مرتب، تو اسے چلانے کے لئے، میں سب سے اوپر بائیں سمت میں کھیل کے بٹن پر کلک کریں، اور وہاں میرا اے پی پی ہے. میں نے کچھ نہیں کیا، اور میں نے ایک پیاری لگ فون اپلی کیشن ہے. اگر میں اس کو روکنے کے لئے چاہتے ہیں، تو آپ کو سٹاپ کے بٹن پر کلک کر سکتے ہیں کیونکہ اس سے زیادہ مزہ آتا ہے. چلو کا کہنا ہے کہ کہ میں نے اصل میں جب میں نے یہ بٹن دبائیں ہونے کے لئے کچھ کرنا چاہتے ہیں. کہ کہ میں کیا کرنے کی ضرورت ہے ہے مجھے بنانے کی ضرورت ہے ایک نیا ایونٹ ہینڈلر یا کارروائی ہے. اس کا مطلب یہ ہے کہ میں کوئی طریقہ ہے کہ میں نے فون کرنا چاہتے ہیں بنانے کے لئے کی ضرورت ہے جب میں بٹن دبائیں، تو ایک نیا طریقہ تخلیق. میں ViewController.h کے اندر ہوں. کا کہنا ہے کہ ایک طریقہ کار موجود ہے کرنے کی ضرورت ہے. میں پہلے ہیفین کی ضرورت ہے کیونکہ میں نقطہ نظر کے کنٹرولر اس بلا جا رہا ہوں. میں یہ ایک قسم دینے کی ضرورت ہے. اس کی قسم کہ IBAction بات یہ ہے کہ ہم پہلے دیکھا جا رہا ہے. یہ ایک ایونٹ ہینڈلر ہے، اسے ایک IBAction واپس جا رہا ہے، اور اس XCode میں ایک اشارہ ہے کہ کہنا ہے اس میں کچھ کچھ تار کرنا چاہتے ہیں ہے. میں یہ buttonPressed نیم وقفہ، کی طرح کا نام دیتے ہیں، کر سکتے ہیں. اب مجھے میری کلاس کے اندر ایک نیا طریقہ قرار دیا ہے. میں نے کہا کہ یہ طریقہ کار موجود ہے ہے. اب ViewController.m میں آئے، اور کا کہنا ہے کہ اس طریقے سے کیا کر سکتے ہیں. اگر میں ٹائپ کرنا شروع کریں، مثال کے طور پر، buttonPressed (باطل) نوٹس XCode واقعی بہت اچھا ہے اور میرے لئے autocompletes ہے. یہ واقعی حیرت انگیز ہے. یہاں یاد رکھیں کہ کے اندر فائل میٹر. میں باطل بھی کہہ سکتے ہیں، اور یہ ہے کیونکہ کہ IBAction اصل میں ایک قسم نہیں ہے. یہ اصل میں کہیں بیان کیا ہے hashtag صفر ہو، اور پھر یہ تو صرف XCode پر ایک اشارہ ہے جو یہ کہتا ہے ہے میں یہ ایک ایونٹ ہینڈلر کرنا چاہتے ہیں، اور ہم دیکھتے ہیں کیوں صرف ایک سیکنڈ میں کریں گے. جب اس بٹن دبایا جاتا ہے، میں پریشان کچھ کرنے کے لئے جا رہا ہوں ایک پاپ اپ ظاہر طرح. ہے کہ میں اس قسم کی ایک نئی مثال کے طور پر کہا جاتا UIAlertView تشکیل دے سکتے ہیں، اور یہ ایک کلاس ہے کہ ایپل نے لکھا ہے کہ پریشان پاپ اپ کو ظاہر کرنے کے لئے جا رہا ہے ہے. ہم اس پاپ اپ انتباہ کو فون کریں، اور میں 2 اقدامات ہیں کریں گے، اس اعتراض بنانے کے یاد،. پہلی بات میں کیا کرنے کی ضرورت ہے کی جگہ مختص کی ہے. میں ایک UIAlertView چاہتے ہیں. میں خلا مختص کرنا چاہتے ہیں. یہ میرا پہلا طریقہ ہے. میری اگلی طریقہ ہے میں اسے ابتدا کرنا چاہتے ہیں، اور اس لئے میں اس بڑے، لمبے وقت کہا جاتا initWithTitle طریقہ ہے. یہ بنیادی طور پر کنٹرول کیا یہ پاپ اپ کا کہنا ہے کہ جا رہا ہے. میرے پاپ اپ کا عنوان ہو سکتا ہے ہیلو. یہ پاپ اپ کا پیغام "یہ iOS ہے" کر سکتے ہیں. مندوب بات، مجھے نہیں پتہ ہے کہ وہ کیا ہے. چلو کا کہنا ہے کہ یہ کچھ بھی نہیں ہے. اب بٹن جو دکھائے جا رہا ہے پسند نہیں "اس بات کا یقین ہے،" کچھ کہہ سکتے ہیں اور میں کسی دوسرے کے بٹن کو واقعی نہیں کرنا چاہتے ہیں، تو ہم کو خارج کر دیں اور بریکٹ بند. ٹھیک ہے، میں نے ایک اضافی بنایا. ہم وہاں جا رہے ہیں. اس کا یہ ہے کس طرح میں نے ایک نیا پاپ اپ تشکیل دے سکتے ہیں. اگر میں واقعی پاپ اپ دکھانا چاہتا ہوں میں شو طریقہ سے بات کرنا چاہتے ہیں. کہ میں ہوشیار اور شو کا کہنا ہے کہ کر سکتے ہیں کرنے کے لئے، اور پھر خود تکمیل سپر اچھی تھی. اگر میں بھول گیا تھا وہ کیا تھا، اگر میں صرف کی میں ٹائپ ہے، میں یہاں کے ذریعے سکرال معلوم کرنا کہ وہ کیا تھا، اور یہ اچھی طرح سے فلٹر. اب میں اس نئے پاپ اپ بنایا. ہم کیا مندوب کا مطلب بعد میں واپس آئیں گے، اور اب میں یہ کہنا چاہتے ہیں میں اس طریقہ کار کو فائرنگ کرنا چاہتے ہیں تاکہ جب میں بٹن دبائیں، میں میری اسٹوری بورڈ پر واپس آنے جا رہا ہوں، اور میں اب اس IBAction پر منسلک کرنا چاہتے ہیں. پہلی چیز جو آپ کرنا چاہتے ہیں کے بٹن پر کلک کریں. جب میں نے یہ بٹن دبائیں میں ہونے کے لیے کچھ کرنا چاہتا ہوں. میں کنٹرول سنبھال نہیں جا رہا ہوں. میں پر کلک کریں اور بٹن سے کھینچ کر لائیں جا رہا ہوں جہاں یہاں یہ دیکھیں کنٹرولر کا کہنا ہے کہ. ہم دیکھتے ہیں کہ یہ اچھی طرح سے لائٹس کر سکتے ہیں. اگر میں اپنے ماؤس کے ساتھ چلتے ہیں، میں اب یہاں اس پاپ اپ ہے، جہاں میں نے کچھ اختیارات ہیں. ان میں سے ایک واقعات میں رجسٹر کر سکتے ہیں ہے. یہ ان طریقوں میں IBActions کے طور پر میری H فائل میں اعلان کیا ہے. اس طرح XCode جانتا ہے جو اس فہرست میں ظاہر کرنا چاہئے، تاکہ صرف ایک اشارہ ہے. اگر میں پر زور دیا کے بٹن پر کلک کریں، اب میں ایونٹ ہینڈلر ہے. جاوا اسکرپٹ میں ہم کا کہنا ہے کہ میں کچھ کوڈ ہے جو کہ ایونٹ ہینڈلر درج ہے تھا. مقصد C میں یہ واقعی اتنا آسان تھا. اگر میں نے اس کو دوبارہ چلائیں اب جب میں بٹن دبائیں میرے ایونٹ ہینڈلر گولی چلانے کی جا رہی ہے، اور میں یہ پاپ اپ حاصل کرنے کے لئے جا رہا ہوں. سپر، سپر وہاں سادہ ہے. اگر تم نے کبھی واقعات رجسٹرڈ رکھا جائے ہوا کے تمام کو دیکھنے کے لئے چاہتے ہیں حصہ میں اس بٹن پر اگر کلک کریں اور میں دائیں جانب آتے ہیں یہاں سب سے پہلے آپ کو یہاں دیکھ کر میں بٹن کی قسم کی طرح کام کرتے ہیں کر سکتے ہیں کر سکتے ہیں، اگر ایسا ہے تو آپ ان کی یا رابطہ کریں کے بٹن میں سے ایک کرنا چاہتے ہیں جو کچھ بھی یا اگر میں واقعات جو اس بٹن پر ہیں سب کو دیکھنے کے لئے چاہتے ہیں اگر میں یہاں سے دائیں جانب پورے راستے آتے ہم واقعات میں ان مختلف واقعات کے سب یہاں دیکھ سکتے ہیں. میں بٹن دبائیں، جب میں بٹن کے، جب میں نل کو دوگنا یا جو کچھ بھی کر سکتے ہیں، اور ایک میں صرف رجسٹرڈ ہے اس واقعہ کو ٹچ فون کیا تھا اندر، اور اس کا کہنا ہے کہ کہ جیسے ہی میری انگلی بٹن آتا ہے اس صورت آگ جا رہا ہے، اور یہ کہ بالکل وہی جو صرف ہوا ہے. یہ ڈیفالٹ بٹن دبایا ایونٹ کی قسم ہے. کوئی بھی سوال اب تک؟ ٹھیک ہے، یہ ہے کہ ہم کس طرح اپنے کوڈ میں چیزیں تار شروع کر سکتے ہیں ہمارے انٹرفیس کے اندر چیزوں میں. یاد ہے سب سے پہلے جس چیز سے ہمیں کرنا پڑا کوڈ کو تلاش کرنے کے لئے تھا، اور پھر ہم نے کوڈ وائرڈ انٹرفیس، اور ہماری سب سے پہلے اے پی پی ہے. ٹھیک ہے، یہ واقعی ڈاؤن لوڈ، اتارنا تھا، اور ہم نے اس بٹن کو پیدا ہے. اگر ہم ایسا کرتے ہیں خصوصیات کا ایک گروپ بنانے کے لئے کی ضرورت نہیں کرنا چاہتے یہ بٹن کی نمائندگی ہے؟ مثال کے طور پر، میں نے Tic دوسس پیر میں 9 بٹن ہے، اور یہ سپر، سپر 9 اوقات کھینچ کر لائیں اور چھوڑ کر پریشان ہو جائے گا یا اگر میں 81 سے Tic دوسس پیر کے بجائے 9 کرنا پڑے اور میں اور 81 بار چھوڑنے کیلئے کھینچیں تھا، اور یہ کہ لنگڑے ہے. بجائے ہم کیا کر سکتے ہیں بہت ایک HTML کی طرح ہے ہم شناخت اور نام کی طرح چیزوں کو جب تھے اور ہم سب چیزوں کے لئے تلاش کر سکتے ہیں ان کی ID کی طرف سے، iOS میں بھی اسی طرح تصور کہا جاتا ٹیگز ہے. ایک ٹیگ صرف ایک جزو کے لئے ایک منفرد عددی شناخت کنندہ ہے. اگر میں کہتا ہوں کہ یہ 0 کے ایک ٹیگ ہے، مثال کے طور پر، اگر میں نے ایک بٹن بنانے اور 0 ٹیگ دے، اور ہم دیکھتے ہیں کہ کس طرح صرف ایک سیکنڈ میں ایسا کریں گے، اگر میں اس بٹن کو حاصل کرنے کے لئے کرنا چاہتے ہیں، میں صرف میں فون کرنا چاہتے ہیں کہہ سکتے ہیں ، اعتراض پر یہاں طریقہ viewWithTag مثال کے طور پر، self.view، جس میں موجودہ سکرین کی نمائندگی کرتا ہے. اگر میں اس viewWithTag طریقہ کہتے ہیں، میں 0 ٹیگ کے ساتھ واپس بٹن پر ھیںچو جا رہا ہوں. کی عمارت Tic دوسس پیر کی طرف سے اس پر ایک نظر لے. سب سے پہلے، یہ میرا اسٹوری بورڈ ہے. میں نے ان 10 UI بٹن کو تشکیل دے دیا ہے. نوٹس وہ سب کے سب ایک ہی سائز رہے ہیں. اگر میں ان میں سے ایک پر کلک کریں اور میں یہاں پر یہ حق کی طرف واپس آتے ہیں آپ کو دیکھ کر میں نے فونٹ ایڈجسٹ یہیں ہے، تو میں نے فونٹ بنایا تھوڑا سا بڑا کریں گے، لیکن جو میں نے بھی کیا تھا میں اس ٹیگ کو مقرر کیا ہے. میں نے کہا کہ یہ 1 ایک ٹیگ ہے، اور یہ کہ سب سے اوپر بائیں ہے. اب، اگر میں کسی دوسرے کے بٹن پر کلک کریں، یہ دوسری طرح اب آپ دیکھتے ہیں کہ میرے ٹیگ 2 گے. ان بٹنوں میں سے ہر ایک صرف ایک منفرد ٹیگ ہے، اور تو اس کے بعد کس طرح میں کر رہا ہوں بات چیت شروع کرنے کے لئے جا رہا میری اے پی پی کے ساتھ. یہ ایک ہی منظر کنٹرولر کے سب اندر ہے، لیکن یہاں ہے جو ہم نے. ہم نے 3 خصوصیات یہاں ہے. پہلا اور آخری ایک میرے بورڈ کے ریاست کی نمائندگی کرنے جا رہے ہیں. بنیادی طور پر یہ پہلا جہاں XS اور OS کی نمائندگی صف ہے. یہ ایک دوسرے یہاں ہمیں بتاتا ہے جس کی باری ہے. آپکو محسوس ہو گا کہ میں بھی ان چیزوں کو یہاں پڑے گا. سے پہلے جب ہم خصوصیات کا اعلان کیا ہم نے انہیں ایک کا نام اور ایک قسم دی. ہم نے ان سے بھی کچھ اضافی معلومات یہاں دے سکتے ہیں. یہ پہلا nonatomic کا کہنا ہے کہ، اور اس کا کہنا ہے کہ بنیادی طور پر صرف ایک ہی چیز کبھی ایک وقت میں اس متغیر پر تک رسائی حاصل رکھا جائے گا کی کوشش کر رہے ہیں. آپ کو زیادہ پیچیدہ اطلاقات کثیر موضوع ہیں کر سکتے ہیں، اور اس طرح پہلے ہم نے شروع میں مختلف موضوعات تھے، اور مختلف sprites مختلف چیزیں ایک ہی وقت میں کر رہا کیا جا سکتا ہے. اگر یہ بات ہے، جو کچھ میں نہیں ہے کہ ہم تلاش کریں گے نہیں ہے، اگر ہم nonatomic کا کہنا ہے کہ یہ اصل میں چیزیں تیزی سے تھوڑا سا بنانے کے لئے جا رہا ہے. ہم نے بھی اس ملاقات کی تفویض، مضبوط، یا کمزور بات ہے. تفویض یہ صرف کا کہنا ہے کہ یہ ایک معیاری کی قسم ہے. یہ ایک چیز یا پوائنٹر نہیں ہے کیونکہ یہ صرف ایک bool ہے، تو bool مقصد C میں بنایا گیا ہے. اس کا کہنا ہے کہ یہاں اشارہ کے ساتھ پسند ہیں کچھ بھی کرنے کی کوشش نہیں کی ہے. یہ ایک باقاعدہ پرانے scaler ہے. مضبوط اور کمزور، اس کمزور اصل میں جو یہ کہتا ہے میں ہے یہ نقطہ نظر کنٹرولر میں کچھ کی طرف اشارہ کرنا چاہتے ہیں. میں جا رہا ہوں اصل میں مختص کرنے کے لئے نہیں کر رہا ہوں یا یہ خود init. انٹرفیس بلڈر، جب میں اے پی پی چلاتے ہیں، کہ ابتدا سے نمٹنے کے لئے کی جا رہی ہے. اگر میں کمزور کہتے ہیں، جو یہ کہتا ہے کہ کسی نے اس بنانے کے لئے کیا جا رہا ہے. اگر میں مضبوط کا کہنا ہے کہ، اس کا کہنا ہے کہ ہے کہ میں ایک بننے کے لئے جا رہا ہوں کہ یہ بورڈ شئی پیدا کر رہا ہے، اور اس میں یہاں کچھ اور طریقوں یہاں ہے، مثال کے طور پر، جب نیا کھیل کے بٹن دبایا جاتا ہے کے لئے ایک ایکشن جب دوسرے بٹنوں میں سے کسی پر زور دیا کر رہے ہیں کے لئے ایک ایکشن، اور وغیرہ. ہم Tic دوسس پیر کی منطق کے بہت زیادہ میں نہیں ملے گا، اگرچہ یہ بہت دلچسپ ہے، لیکن پر ایک نظر لے چیزیں ہیں کہ ہم iOS کے اندر کر سکتے ہیں میں سے کچھ ہیں. یہ نیا کھیل کا طریقہ فائرنگ کی جا رہی ہے میں نیا کھیل کے بٹن جب بھی دبائیں. ہک ہے کہ کیا میں صرف میری اسٹوری بورڈ کو آنے کی. میں نیا کھیل پر کلک کیا. اگر میں حق پر یہاں میں یہ دیکھ سکتا ہے newGame کے طریقہ کار سے منسلک اندر ممبر چھونا. یہی وجہ ہے کہ اس فائرنگ کرنے کے لئے کی جا رہی ہے. newGame طریقہ کوئی سیٹ اپ کیا جا رہا ہے. اس کا کہنا ہے کہ میں آپ کو بورڈ کے ریاست کو صاف کرنا چاہتے ہیں جا رہا ہے. یہ تبدیلی arrays پر ایک اچھا طریقہ ہے. اس کا کہنا ہے کہ اب X باری ہے جا رہا ہے، اور اب میں اس viewWithTag بات کا فائدہ لے جا رہا ہوں. میں جانتا ہوں کہ میرا بٹن کے ٹیگز 1-9 ہیں، اور یہ کہ کچھ میں منمانے اٹھایا ہے. اگر میں ہر بٹن کے متن خالی ہو جائے قائم کرنے کے لئے کرنا چاہتے ہیں کیونکہ میں صرف ایک نیا کھیل شروع کر دیا اور میں نے کوئی نہیں کرنا چاہتا XS یا OS سے زیادہ میں نے یہ کر سکتے ہیں چھوڑ. میں کہتا ہوں کہ میں ٹیگ کے ساتھ، 1، 2، 3، 4 وغیرہ کی ضرورت ہے کر سکتے ہیں. یہ ایک مختلف بٹن ہر بار ھیںچو گا. یہاں میں یہ UIButton ڈالا جا رہا ہوں. جیسا کہ ہم نے floats اور اس کے برعکس ints ڈال کر سکتے ہیں اس کا کہنا ہے کہ میں ایک UIButton اس پر ڈال کرنا چاہتے ہیں. اس کا مطلب ہے کہ اس کی قسم UIButton * ہو جائے گا اشارہ کی وجہ سے، لیکن فکر مت کرو، وہ خوفناک نہیں ہو. ایک بار میں اس بٹن کو میں اس پر ایک طریقہ کو فون کرنے جا رہا ہوں. یہ طریقہ کو setTitle forState کہا جاتا ہے، اور تو اس کا کہنا ہے کہ میں بٹن کے متن خالی سٹرنگ پر قائم کرنے کے لئے کرنا چاہتے ہیں، اور میں نے اسے خالی سٹرنگ ہے جب وہ نہیں دبایا ہے کرنا چاہتے ہیں. اگر میں اس طریقے کا استعمال کرتے ہوئے کر رہا ہوں، میں بٹن کے متن کو تبدیل کر سکتے ہیں جیسے ہی کوئی یہ مار دیتی ہے، لیکن ہم کہتے ہیں کہ جب بٹن صرف وہاں بیٹھی ہے کرنا چاہتے ہیں میں متن کو خالی کرنا چاہتے ہیں. آخر میں، ہم اپنے بورڈ کی ابتدا کرنے جا رہے ہیں، اور میں کہتا ہوں کہ سب کچھ 0 فی الحال کے لئے جا رہا ہوں، تو یہ بورڈ کے ارکان immutable تبدیلی صف ہے، جس کا مطلب ہے کہ میں addObject طریقہ کار اور اس کے صرف ایک 0 اندر کال کر سکتے ہیں. یہی ہوتا ہے جب میں ایک نیا کھیل بنانے کے. کی ایک دوسرے پر ایک نظر لے. یہ طریقہ IBAction ہے کہ اس پر زور دیا جا رہا ہے ہر بار ان چوکوں میں سے ایک پر زور دیا ہے. اب ہم یہاں کچھ Tic دوسس پیر منطق ہے. ہم اندازہ لگا جس کی باری ہے، کی بنیاد پر اور اس پر ہم یا تو ایک X یا O قائم، لیکن ہم دیکھیں گے کہ ہم نے اس ایک ہی ایونٹ ہینڈلر reusing رہے ہیں ان بٹنوں میں سے ہر ایک کے لئے. اس کا مطلب یہ ہے کہ میں سب سے اوپر بائیں بٹن کے لئے ایک طریقہ نہیں ہے، نیچے دائیں بٹن کے لئے ایک مختلف طریقہ ہے، اگرچہ کہ میں کیا کیا جا سکتا ہے. یہ واقعی میں بہت اچھا ڈیزائن نہیں کیا جائے گا. میں یہاں کیا کر رہا ہوں میں اصل تعین کرنے جا رہا ہوں کے بٹن پر زور دیا گیا تھا ٹیگ کیا ہے. آپ کو نوٹس ہے کہ یہ کھیل کا طریقہ کار ایک دلیل لیتا ہے. یہ مرسل کہتے ہیں، اور کیا مرسل ہے مرسل ہے جا رہا بالکل کیا وسلم ایکشن لیا گیا تھا نمائندگی کرتے ہیں. اگر میں نے ایک بٹن دبائیں، یہ مرسل کہ UIButton جا رہا ہے تاکہ اس میں اصل میں زور دیا گیا ہے، کا مطلب ہے کہ وہ UIButton ایک ٹیگ ہے کیونکہ میں ایک ٹیگ پیدا کیا. اگر میں ٹیگ کو حاصل کرنے کے لئے کرنا چاہتے ہیں، میں صرف کہہ سکتے ہیں بھیجنے والے کا ٹیگ چاہتے ہیں، اور پھر سے، میں صرف ایک UIButton ہے casted. مجھے نہیں پتہ کہ مرسل ایک UIButton ہو جائے گا ہو سکتا ہے. یہ ایک UIButton ہمیشہ نہیں ہے. میں مثال کے طور پر، اسی ایونٹ ہینڈلر کریں سکتی ہے  ایک بٹن ایک سلائیڈر کے لئے ایک کے لئے ایک کے لئے. اس صورت میں، میں جانتا ہوں کہ وہ سب کے بٹن ہیں، تو میں کہنے جا رہا ہوں میں یہ ایک بٹن کرنا چاہتے ہیں، اور پھر میں ٹیگ حاصل کر سکتے ہیں، اور اب میں ٹیگ سے پتہ ہے جہاں میں بورڈ کے اندر ہوں. تو پھر مجھے بھی X یا O، باری پلٹائیں کر سکتے ہیں صرف اسے مقرر کر سکتے ہیں، چیک کرنے کے لیے جو cetera ET جیت لیا ہے. یہ اب تک میں آپ کا کوئی سوال ہے؟ ٹھیک ہے، تمام کوڈ کو ہم پوسٹ آن لائن ہم بہت زیادہ میں حاصل کرنے کے لئے نہیں کرنا چاہتا Tic دوسس پیر منطق کے، لیکن اب آپ واقعی دیکھ سکتے ہیں ہم سب کر رہے ہیں ہم اس صف پر looping کر رہے ہیں، تو ہم یہاں loops کے لئے ایک جوڑے کی ہے، اور ہم صرف دیکھ موازنہ کر رہے ہیں کیا ہم تمام قطار، اس طرح ایک کالم یا کسی بھی چیز میں ایک میچ میں ایک میچ ہے. اصل میں اس اپلی کیشن کو چلانے کے لئے، اگر میں ان بٹنوں میں سے ایک نل تو ہے کہ کھیل کا طریقہ نکالا گیا ہے، اس کا مطلب ہے کہ میں صرف مقرر بٹن ایک X، لہذا اب اس بٹن کو ایک O اور تو، اور وہ ہے کہ ہم کس طرح اس ایک صفحے اپلی کیشن کے ساتھ بات چیت شروع کر رہے ہیں. ، ہم کوڈ پوسٹ کریں گے، کہ peruse بلا جھجھک لیکن اب کچھ اطلاقات صرف ایک صفحے سے زیادہ ہیں کے بارے میں بات کریں. Tic دوسس پیر کے طور پر پر جوش تھا iOS کے اندر اطلاقات کی ایک بہت ایک سے زیادہ کی سکرین کے ساتھ چیزوں کے نیچے ان ڈرل کی طرح ہیں. پہلا تصور یہ ہے کہ ہم کے بارے میں بات کرنے کی ضرورت ہو گی پروٹوکولز ہیں، اور ایک پروٹوکول صرف طریقوں میں سے ایک سیٹ ہے کہ آپ وضاحت وعدہ کر سکتے ہیں. اگر میں 2 طریقوں کے ساتھ اس نئے پروٹوکول، یہ پہلا تخلیق، اگر واپسی کی قسم کی باطل ہے، میں اسے FOO سے ملاقات کی. اس میں کوئی بحث نہیں لیتا ہے. میں ایک اور طریقہ ہے. یہ ایک int واپس. میں نے اسے بار، اور یہ ایک دلیل لیتا ہے. یہ سب پروٹوکول یہ ہے کہ SomeProtocol بلایا یہاں، یہ ہیں کہ کسی عمل درآمد کر سکتے ہیں کی ایک سیٹ ہے. میں اس پروٹوکول کے اندر نہیں کیا FOO کرتا ہے. اس کے بجائے، میں آپ FOO وضاحت اگر آپ کرنا چاہتے ہیں کر سکتے ہیں کے لئے صرف یہ کہہ رہا ہوں. اگر میں ایک نقطہ نظر کنٹرولر پیدا ہوں یا ایک کلاس پیدا میں کہ کلاس کے وعدہ کے اندر عمل درآمد کر سکتے ہیں ان طریقوں میں سے کچھ، تو مثال کے طور پر اگر، کا کہنا ہے کہ اس کا کہنا ہے کہ میں نے تم سے وعدہ کر رہا ہوں کہ اندر اس قول کنٹرولر طبقے کی میں FOO اور بار دونوں کے لئے تعریف کر جائے گا. یہی وجہ ہے کہ مفید ہے؟ iOS کے اندر بہت سے اجزاء میں سے اس کا فائدہ اٹھانے کی ڈیزائن پیٹرن کے وفد سے ملاقات کی، اور جو وفد کا کہنا ہے کہ یہ ہے کہ، مثال کے طور پر، اگر میں ایک ٹیکسٹ باکس ہے اور کچھ واقعات جو کہ اپنے متن کے باکس کے اندر رکھا جائے رجسٹرڈ کیا جا سکتا ہے ہے، بلکہ الگ الگ واقعات میں کیا کر سکتے ہیں بنانے سے ہے، میں کہہ سکتے ہیں اس ٹیکسٹ باکس کے مندوب کو کچھ اعتراض ہو جائے گا. جب میں کہتا ہوں کہ اب یہ ایک مندوب ہے اس کا مطلب ہے کہ کہ کچھ جب بھی تقریب گے متن والے باکس میں فائرنگ بجائے یہ یا ایسا کچھ کریں یہ صرف مندوب کے طریقہ کار سے فون چل رہا ہے. مثال کے طور پر، اندر میں میرے ٹیکسٹ باکس کے لئے جب میں پریس کے لئے ایک طریقہ ہے کہ نیچے دائیں میں بٹن کیا ہے، اور اس کی بجائے ایونٹ ہینڈلر میں کیا کہہ سکتا ہوں کر رہا ہے ٹیکسٹ باکس، یہاں کسی چیز ہے کہ میں نے تم پر ایک طریقہ سے بات کرنا چاہتے ہیں ہر بار کسی نے کیا بٹن پریس، اور اس کا مطلب ہے کہ وہ چیز کچھ پروٹوکول پر عملدرآمد کرنے کے لئے ہے جو یہ کہتا ہے کہ میں کہ کیا بٹن کارروائی کی وضاحت کرنے کے لئے وعدہ کرتا ہوں، کیونکہ اگر یہ طریقہ بیان نہیں ہے اور تم نے کیا کیا پریس، تو اس مبہم ہونے جا رہا ہے. کی ایک مثال کے طور پر ایک نظر لے. میں یہاں صرف ایک ٹیکسٹ باکس ہے، اور اس دائیں جانب پر یہاں اس ٹیکسٹ باکس کی خصوصیات میں سے ایک مندوب ہے. یہ کلاس کی ایک خاصیت ہے. میں یہاں کیا کیا ہے میں کلک کیا کنٹرول، اور میں اس جگہ کو یہاں سے گھسیٹ قول کنٹرولر، اور یہ کہ اب اس متن کے خانے کے مندوب کا کہنا ہے کہ نقطہ نظر کنٹرولر ہو جائے گا. اس کا مطلب یہ ہے کہ جب کچھ اعمال، بلکہ اندراج سے ہو علیحدہ ایونٹ handlers میں تمہیں ان کے مندوب پر بھیجنے کے لئے چاہتے ہیں. اب میرے خیال کنٹرولر پر ایک نظر لے. H فائل کے اندر میں نے ایک وعدہ کیا ہے. میں اس پروٹوکول کے اندر کچھ طریقوں کو نافذ کرنے کا وعدہ کیا ہے کہا جاتا UITextFieldDelegate، بار، یہ تو صرف کچھ چیزیں ہیں کہ میں پر عملدرآمد کرنے کا انتخاب کر سکتے ہیں میں سے کچھ کی فہرست ہے. اگر میں اپنے میٹر. فائل میں یہاں آتے ہیں، میں نے ایک ایسا طریقہ کو لاگو کیا ہے. میں اسے textFieldShouldReturn بلایا ہے اس لیے کہ وہ ہے جو پروٹوکول کے اندر بلایا گیا تھا. اور اب جب بھی میں اس متن والے فیلڈ کی کیا بٹن کے اندر پریس یہ ہے جو کہا جاتا ہونے جا رہا ہے، تو میں ایک ایونٹ ہینڈلر کا اندراج نہیں کیا ہے. میں مندوب سے منسلک ہے، اور جب بھی اس ایونٹ کو فائرنگ ہے یہ طریقہ ہے کہ فون ہو جائے گا ہے، اگر ایسا ہے تو میں یہاں میری اسٹوری بورڈ اور چلانے کے اس ہم دیکھتے ہیں جبکہ اس لوڈنگ ہے اس کا کیا کر سکتے ہیں. اپنی سکرین پر مجھے 2 چیزیں ہیں. میں اس متن والے فیلڈ ہے، اور میں اس لیبل ہے. میں صرف یہ کہہ رہے میں اس لیبل کا متن چاہتی ہوں جو بھی صارف متن والے فیلڈ کے اندر میں ٹائپ کے برابر ہو جائے. یہ اگلی لائن یہاں صرف ایک طریقہ ہے کہ میں بات کر رہا ہوں ہے متن والے فیلڈ ہے جو یہ کہتا ہے کہ میں آپ کو کی بورڈ کو چھپانے کے لئے چاہتے ہیں. یہ صرف صوابدیدی طریقہ ہے کہ ایپل کا انتخاب کیا ہے. ایک بار پھر، اس سے پہلے کہ میں کچھ بھی میں نے سب کو تار تھا کیا، تو میں نے سب سے پہلے یہاں آیا تھا. نقطہ نظر کے کنٹرولر سے میں ٹیکسٹ باکس کو کھینچ کر لائیں. میں، جاؤ اور میں یہاں دیکھ سکتے ہیں کہ میں نے یہ متن والے فیلڈ جائداد کر سکتے ہیں پر نقطہ نظر کنٹرولر میں یہاں سے میں نے جائیداد کی وضاحت ہے ہے کہ ایک متن والے فیلڈ کے ایک IBOutlet ہے. اس کا کہنا ہے کہ میں اس کی خاصیت کے تار سکتے ہیں. اپنے UI میں ایک متن والے فیلڈ پر. اب جب میں اس پر کلک کریں، میں ٹائپ کرنا شروع کر سکتے ہیں. اب اگر میں نے بٹن پر کلک کریں اس پر گولی چلانے جا رہا ہے کے نتیجے میں کوئی ایسا واقعہ ہے کہ اب میں جواب دینے کے لئے کر سکتے ہیں. ایونٹ handlers نہیں ہیں. اس طرح میں نے صرف کہ کیا بٹن کے جواب میں ہے. احساس ہے؟ یہ ایک ڈیزائن پیٹرن نہیں ہے کہ تم نے کبھی اپنے آپ کو نہیں مل سکتا ہے اپنے اپنے پروٹوکول کو پیدا ہے، لیکن صرف اتنا جانتا ہوں کہ کچھ iOS کے مختلف اجزاء مختلف طریقوں سے واقعات کریں. بٹن، مثال کے طور پر، ان لوگوں کو IBActions کا استعمال کریں. متن قطعے، دوسری طرف، کے نمائندوں کو استعمال کرنے کے لئے جا رہے ہیں. ہم کو دیکھتے ہیں اور آپ کہ دستاویزات کے اندر کی سب دیکھ سکتے ہیں کر سکتے ہیں. ویسے، اصل میں UI چیزیں ٹن آپ کے لئے iOS میں تعمیر مثال کے طور پر، جس طرح سے میں نے جو سب سے نیچے کے حق میں کیا کہنا ہے میں نے اس متن والے فیلڈ کو منتخب کیا ہے. میں یہاں آئی ہے. میں تھوڑا scrolled چابی واپس، اور میں یہ چیزوں کی ایک پوری چڑھانے اصل میں، طرح اگر میں چاہتی ہوں کہ کہنا سکتے ہیں ہنگامی کال کی بجائے میں یہ نہیں، کر سکتے ہیں جو کہ مکمل طور پر بے ترتیب ہے، اور مجھے پتہ نہیں کیوں ایک بلٹ میں ہنگامی کال بٹن نہیں ہے، لیکن وہاں یہ واقعی چھوٹے حروف میں ہنگامی کال کا کہنا ہے کہ. تم وہاں جاؤ. یقینی طور سے iOS میں ان مختلف اختیارات میں سے تمام کی. مندوبین پر میں آپ کا کوئی سوال ہے؟ ایک بار پھر، صرف ایک دلچسپ ڈیزائن پیٹرن ہے کہ آپ کے بارے میں علم ہونا چاہئے. ٹھیک ہے، چلو اگلے میز کے خیالات پر ایک نظر لے. ایک میز نقطہ نظر بنیادی طور پر اشیاء کی فہرست ہے کہ تمام iOS میں جگہ ختم ہو گیا ہے ہے. جب آپ سبھی آپ کے رابطے کے ذریعے flipping کر رہے ہیں، آپ کو تلاش کر رہے ہیں کی ترتیب کے صفحے پر، اور چیزوں کی فہرست اس طرح کی ایک میز کے نقطہ نظر کو کہا جاتا ہے. iOS میں ایک میز کے نقطہ نظر کو لاگو کرنے سے بہت آسان ہے. ایک کلاس ہے کہ اس UIViewController سے نزول فرماتا ہے کرنے کے بجائے جیسا کہ ہم نے کیا کیا ہے اس سے پہلے کہ ہم صرف بجائے کہنے کی ضرورت ہے سب کچھ ایک UIViewController میں کرنا چاہتا ہے، سب کچھ UITableViewController میں کرنا چاہتا ہے کا کہنا ہے کہ، تاکہ صرف کچھ اضافی چیزیں جو مکمل طور پر ہمارے لئے کیا کر رہے ہیں جوڑتا ہے. ہم بنیادی طور پر ٹیبل کے اندر خالی میں بھرنے کے لئے بہت تھوڑا کرنے کی ضرورت ہے. کے لئے ایک ٹیبل میں کچھ سوالات کا جواب کرنے کی ضرورت ہے کو ظاہر کرنے کے لئے. پہلا سوال میں جواب دینے کی ضرورت ہے ہے کتنے حصوں ٹیبل میں ہیں؟ آپ کو نوٹس ہے جب آپ کو آپ کے رابطے کے اپلی کیشن کے ذریعے flipping رہے ہیں کہ اس قسم کی ہے. کے طور پر کی طرف سے منظم، تو آپ کو گریڈ ہے، اور آپ کو اس چھوٹی سی ذیلی ہیڈر ہے. ان میں سے ہر ایک کے حصے کے نام سے جانا جاتا ہے. تم کر سکتے ہو یا ان کی ضرورت نہیں کر سکتے ہیں. پہلی بات ہے آپ کیا کرنے کی ضرورت ہے، ایک طریقہ پر عملدرآمد کہا جاتا tableView: numberOfSectionsInTableView. یہ صرف واپس آپ کتنے حصوں ہے، یہ تو ایسا کہیں ایک کو واپس کر سکتے ہیں اگر آپ کے پاس ایک بڑا ٹیبل نقطہ نظر ہے. اگلے سوال ہے کہ iOS جاننے کی ضرورت ہے ہے آپ کو کس طرح زیادہ لائنیں ہیں؟ مثال کے طور پر، آپ کو ایک ٹیبل نقطہ نظر کے ذریعے flipping کر رہے ہیں. آپ گانے، نغمے کی ایک مقررہ تعداد میں اپنے آپ کو تلاش کر رہے ہیں یا رابطے کی ایک مقررہ تعداد ہے. اگر تم مجھ سے ہیں، ظاہر ہے، بہت سے نہیں، اور تاکہ طرح iOS جانتا ہے کہ کس طرح بہت سے خلیات کو ظاہر کرنے کے لئے ہے. ایک بار پھر، یہ 3 واپسی کی طرح کچھ کہہ سکتا ہے. میری میز کے منظر 3 قطار ہے. آخر میں، iOS کو معلوم ہے کہ ہر سیل کی طرح لگتا ہے کرنے کی ضرورت ہے، تو کیا یہ اصل میں کیا جا رہا ہے ہے کہ اس طریقے سے نیچے یہاں فون، اس tableView: cellForRowAtIndexPath. یہ آپ کی ٹیبل کے اندر ہر ایک سیل پر اس طریقے کو فون کرنے جا رہا ہے. یہ کیسے جانتے ہو کہ کتنی بار اسے فون کرنے کی ہے؟ ٹھیک ہے، آپ اس کے اندر کے حصہ میں لائنیں کی تعداد میں بتایا تھا. ہم ہمارے خلیات میں سے ہر ایک پر اس کو فون کرنے جا رہے ہیں، اور اس کے اندر ہے جہاں آپ جیسی چیزوں کو اصل میں کیا کر سکتے ہیں متن کو مقرر کریں یا آپ کو بتاو کہ کیا ہے کہ دائیں جانب تھوڑا نیلے بٹن کرتا ہے. پیٹرن ان خلیات کو حاصل کرنے کے لئے، ہم نے اس طریقے کو استعمال کرنے کے لئے جا رہے ہیں کہا جاتا dequeueReusableCellWithIdentifier. مقصد C-اصل میں ان کے طریقہ کار کے ناموں کی مضحکہ خیز لمبائی کے لئے بہت اچھی طرح سے جانا جاتا ہے، اور یہ سچ نقطہ مثال کے طور پر میں ایک اچھا معاملہ ہے. کیا یہ طریقہ ہے کا کہنا ہے کہ میں تم مجھ سے ایک سیل کو دینے کے لئے چاہتے ہیں. صرف ایک iOS بات. اگر آپ اپنے آئی پوڈ پر 100،000 گانے، نغمے کی طرح کچھ ہے iOS کرنا نہیں چاہتا ہے 100،000 خلیات مختص، کیونکہ اگر آپ کو آپ کی فہرست کے سب سے اوپر دیئے گئے ہیں، آپ واقعی میموری مختص کرنے کی ضرورت ہے سیل جو نیچے 99.000 قطار ہے؟ نہیں، کیونکہ جیسا کہ آپ سکرول کر رہے ہیں، آپ کے طور پر آپ کے ساتھ جانے کے مختص کی طرح کر سکتے ہیں. یہ آپ کے لئے کیا جاتا ہے. آپ اس مورھ کی کارکردگی کی چیزوں کے بارے میں فکر کرنے کی ضرورت نہیں ہے. آپ کا کہنا ہے کہ آپ کو یہ طریقہ dequeueReusableCellWithIdentifier فون ہے، اور اس کا کہنا ہے کہ، ٹھیک ہے، اگر آپ میں آپ کے لئے ایک نیا سیل بنانے کے لئے جا رہا ہوں کی ضرورت ہے. لیکن اگر آپ کو ٹیبل کے سب سے نیچے دیئے گئے ہو، اور آپ پہلے سے ہی کچھ خلیات مختص ہے. ٹیبل کے سب سے اوپر ہے کہ تم سچ میں کسی بھی وقت جلد ہی کرنے کی ضرورت نہیں ہو میں آپ کو ایک نیا آونٹن کی بجائے واپس ان میں سے ایک دینے جا رہا ہوں، تو یہ ایک اچھی کارکردگی کی تشویش ہے. آپ خلیات اپنے آپ کو مختص نہیں ہے. کہ تم واپس ایک سیل دینے جا رہا ہے. یہ تمہارے لئے ایک سیل شئی پر واپس جا رہا ہے. ایک بار جب آپ سیل مقصد آپ اس چیزیں کر سکتے ہیں ہے. آپ اس متن لیبل نامی جائیداد کے ساتھ سیل کے متن کو مقرر کر سکتے ہیں. آپ کو حق یا کسی اور بے ترتیب چیزیں اس تیر کو شامل کر سکتے ہیں یہ دوسری جائیداد کے ساتھ ملاقات کی accessoryType، اور تو اور اس میں اصل میں ایک میز کے نقطہ نظر کو لاگو کرنے کے پر ایک نظر ڈالیں. جب میں اس منصوبے کو پیدا انفرادی نقطہ نظر درخواست کہہ کی بجائے دراصل میں یہاں آئی درخواست مالک کی تفصیل تو بنیادی طور پر یہ میل اپلی کیشن کے مساوی بائیں ٹیبل نقطہ نظر اور پھر دائیں طرف کے مواد کے ساتھ iPad پر. آئی پوڈ یا فون پر اس ایک ایک میز قول کے مطابق کی جا رہی ہے. اس جہاں میں اپنے سٹارٹر کوڈ مل گیا. چلو اسٹوری بورڈ میں پہلی بار ایک نظر ڈالیں. یہ سب میرے لئے کیا گیا تھا، بنیادی طور پر پیدا. یہ نیویگیشن بار آپ کے وزٹرز کا ریکارڈ سے ظاہر ہوتا ہے کہ ایک مثال کے طور پر سیل کی طرح نظر سکتی، اور میں یہ دوہرا، عنوان تبدیل کلک کر سکتے ہیں. کوئی دوسرے UI کے خدشات میں وہاں سنبھال سکتے ہیں. ہیڈر کی فائل بہت آسان لگتا ہے. کہ یہ UIViewController ہے کی بجائے اب ہم یہ کہہ رہا ہے کہ یہ ایک ہے TableViewController، تو ہم جانتے ہیں کہ ہم ان تمام ٹیبل کے طریقوں کو فون کرنا چاہتے ہیں. <پیچھے اگلا، دوسرا میں ایک پراپرٹی ہے جس کی نمائندگی کرنے جا رہا ہے پیدا کرنا چاہتے ہیں میری ٹیبل کے اندر چیزیں. یہ میز منمانے ظاہر کرنے کے لئے جا رہا ہے پھل کی ایک فہرست، اور اس لئے میں کچھ صف بنانے کے لئے کی ضرورت ہے جس میں پھل داخل کر سکتے ہیں. میرا عمل درآمد فائل پہلی چیز کے اندر میں کرنا چاہتے ہیں ہے، میں اس بات کا یقین کر لیں کہ میں اس صف ابتدا کرنا چاہتے ہیں. میں alloc init نے کہا کہ میرا پھل صف پیدا، اور میں نے اسے 4 چیزیں شامل رہا ہوں، جن میں سے ایک دیگر 3 سے زیادہ متنازعہ ہے. اور اب میں 4 سائز کے ایک صف ہے. ہم اس CS50 میں ملاتے ہوئے کر رہے ہیں. اب میں 4 سائز کے ایک صف ہے. اب میں ان سوالات کے جواب دینے شروع کر رہا ہوں، اور اصل میں، جب میں اس اپلی کیشن کو پیدا کیا یہ سب پہلے ہی میرے لئے کیا گیا تھا. میں میز کے خیال میں حصوں کی تعداد ٹائپ نہیں تھا. یہ پہلے سے ہی وہاں تھا، اور میں خالی میں بھرنے رہا ہوں. میں کتنے حصے ہیں؟ ایک. سب کیا ہے. میں کتنے قطار ہے؟ تو ٹھیک ہے، میں ہر پھل کے لئے ایک صف ہے، اس کا شمار کوئی بھی صف ہے جو یہ کہتا ہے کہ کتنا بڑا ہے کی خاصیت ہے؟ اس کا ہے کتنے قطار میں ہے. آخر میں، میں کہتا ہوں کہ ہر سیل کی طرح لگتی ہے کرنے کی ضرورت ہے؟ میں dequeueReusableCellWithIdentifier کہنے جا رہا ہوں. ایک بار پھر، یہ پہلے ہی میرے لئے لکھا گیا ہے. میں نے یہ خود کرنا پڑے نہیں کیا، اور میں واپس حاصل کرنے کے لئے کرنا چاہتے ہیں اس جگہ پر اس سیل ہے. یاد رکھیں کہ ہم ہر ایک سیل پر یہی طریقہ بتا رہے ہیں، اور یہ دلیل یہاں، اس indexPath دلیل کا کہنا ہے کہ جو صف میں اندر ہوں. اگر میں indexPath.row کا کہنا ہے کہ یہاں اس 0 ہو جائے گا، تو اس 1 ہو جائے گا، تو اس 2 ہو سکتا ہے، اور یہ تو میں جانتا ہوں گا کیا سیل میں فی الحال کی نمائش کر رہا ہوں. میں سیل کا متن اس textLabel جائیداد کا استعمال کرتے ہوئے مقرر کرنا چاہتے ہیں میرا پھل صف کے اندر جانے کے لئے اور ہر صف اسی اعتراض ہے. اگر یہ ایک تار ہے، اب میں قائم کرنے ہوں متن ایک تار کی جائداد. میں ایک اور کام کر سکتے ہیں. میں خلیات میں سے ہر ایک پر ایک ایونٹ ہینڈلر بھی رجسٹر کر سکتے ہیں، تو جب میں ان خلیات میں سے ہر ایک نل اس didSelectRowAtIndexPath، اس نے مجھے بلایا جا رہا ہے، تو اب میں صرف اس کی وضاحت کی طرف سے سنبھال سکتا ہوں کیا ہوتا ہے جب تم نے ایک سیل نل، اور پھر، ہم گزر جس میں سیل ٹیپ کیا گیا تھا ہے تاکہ ہم ہمارے خلیات کی سب کے لئے یہ اسی ایونٹ ہینڈلر کو دوبارہ استعمال کر سکتے ہیں. ایک بار پھر، یہ کچھ ہے iOS میرے لئے کر رہی ہے. چلو ایک اور پریشان پاپ اپ ظاہر کرنے کے لئے کہ صرف کا کہنا ہے کہ جہاں کہ کچھ تم سے کچھ اٹھایا صف اعتراض ہو جائے گا. جب میں اس چلاتے ہیں، میں یہ اچھا ٹیبل نقطہ نظر کے لئے جا رہا ہوں یہ پھل میں سے ہر ایک کے لئے ایک صف کے ساتھ، اور اگر میں ایک نل یہ مجھ سے کہتا ہے کیا ہوا ہے. احساس ہے؟ چلو تھوڑا سا ایک اپلی کیشن کی زیادہ پیچیدہ تعمیر، کے طور پر کلک کرنے سے آپ ٹماٹر اٹھایا کے طور پر زیادہ ہے. storyboarding کے بارے میں اچھا حصہ ہے ہمیں ڈیزائن کی سکرین کو انفرادی طور پر مدد نہ صرف ہو رہا ہے، یہ بھی ہمیں ساتھ ہمارے پورے اپلی کیشن کو باندھنے میں مدد کی جا رہی ہے، تو حتمی اپلی کیشن ہم تعمیر کریں گے یہ اچھا کھیل نیوز ریڈر ہے، اور تو اس ایک سے زیادہ کی سکرین کو ہے جا، اور اس میں اصل کی نمائندگی کر سکتے ہیں ، اسٹوری بورڈ پر ان سے زیادہ کی سکرین میں سے ہر ایک اور میں باہر زوم کر سکتے ہیں اور ایک اعلی سطح سے اپنے اپلی کیشن کو دیکھ کر سکتے ہیں. تاکہ میرے اسٹوری بورڈ کا ایک نیا عنصر اندر پیدا کرنے کی انٹرفیس بلڈر کے اندر واقعی بہت آسان ہے. اگر میں اس میں ایک اور سکرین پر شامل کرنا چاہتے ہیں ہیں، مثال کے طور پر، میں چوٹکی زوم ہے کہ ایپل اتنا پیار کرتا ہے کے ساتھ پہلے زوم کر سکتے ہیں، اور یہاں ذیل میں ایک بٹن کے لئے پہلے تلاش اور میں ایک بٹن کو ھیںچ کر ڈراپ اگر میں ایک نئی اسکرین بنانا چاہتے ہیں، میں صرف اصل اور ھیںچ کر رکھ دیں کر سکتے ہیں ایک مکمل نقطہ نظر کنٹرولر، اگر ایسا ہے تو میں نے اس کو منتخب کریں، اس کے یہاں ھیںچو، ہے، ایک سکرین ہے، اور تو اب یہی اسٹوری بورڈ فائل کا استعمال کرتے ہوئے میں میرے اے پی پی کے اندر سکرین کے سب ہے، اور میں باہر زوم کر سکتے ہیں کر سکتے ہیں دیکھتے ہیں اور وہ کس طرح بات چیت. یہ ابھی تک بات چیت نہیں کریں گے. جس طرح سے ہے جس میں ان 2 سکرین تعامل ہے کہ آپ کے تعلقات کی وضاحت. تم نے اس کی سکرین کو بنیادی طور پر، کا کہنا ہے کہ جب آپ یہ بٹن دبائیں کر سکتے ہیں، میں آپ کو اس نئے سکرین پر سلائڈ کرنا چاہتے ہیں. اس کا مطلب ہے کے درمیان تعلق کی اس طرح ہے  پہلی سکرین اور دوسری سکرین. آپ بنیادی طور پر اس بٹن سے دوسری سکرین پر ایک تیر پڑے گا کہہ رہے ہیں کہ جب آپ کو یہ بٹن دبائیں کہ جہاں میں جانا چاہتا ہوں. جیسا کہ ہم نے کلک کیا ہے اور وہ ابلاغ کی وضاحت کرنے گھسیٹ کنٹرول ہم ان segues کی وضاحت کرنے کے لئے ایک ہی بات کرنے جا رہے ہیں. ہم نے اس کے لیے ایک مثال دیکھ اور اس سے پہلے کہ ہم واقعی منتقلی گے ایک اسکرین سے ایک اور iOS اس طریقہ کار کو فون کرنے کی کے لئے کافی اچھا ہے کہا جاتا prepareForSegue، اور یہ ہے تو ہم کہاں سے شروع کر سکتے ہیں ایک اپلی کیشن سے دوسرے میں ڈیٹا بھیجنے. مثال میں ہم ہیں اس کو دیکھنے کے لئے ہمیں بنیادی طور پر اجازت دے گا لیگ اور ڈویژنوں کی طرف سے بیس بال کی ٹیموں کو فلٹر. جب میں نے ایک لیگ کا انتخاب کرتے ہیں، مثال کے طور پر، میں منتقلی چاہتے ہیں میری اگلی سکرین جہاں میں ڈویژن کے تمام ظاہر کر سکتا ہے اس لیگ یا تمام مختلف ٹیموں میں. میں اس سکرین آپ کیا ٹیموں کو ظاہر کرنا چاہئے بھیجنے کی ضرورت ہے. کہ میں اس طریقے کا فائدہ اٹھا کر یہاں ہوں. آخر میں، iOS پر صرف ایک بے ترتیب نقطہ ہے. اگر آپ کے ڈیٹا کو محفوظ کرنا چاہتے ہیں اس ملاقات کی بنیادی ڈیٹا کی بات ہے، جو اصل میں کے ساتھ مل کر کام کرنے کے پیچیدہ قسم کا ہے. آپ SQL بھی ڈیٹا سٹور کرنے کے لئے استعمال کر سکتے ہیں، جس میں ایک بار پھر، زیادہ پیچیدہ طرف اچھا لیکن قسم کی ہے کے ساتھ مل کر کام کرنے کے، لیکن iOS بھی یہ واقعی ڈاؤن لوڈ، اتارنا کہا جاتا جائیداد کی فہرست کی حمایت کرتا ہے، اور جائیداد کی فہرست صرف ایک فائل ہے کہ کلیدی قدر جوڑوں کی نمائندگی کرتی ہے ہے. آپ چابیاں کی ایک فہرست کی وضاحت کرتے ہیں، اور آپ کا کہنا ہے کہ یہ چابی ایک صف پر جا رہا ہے. یہ چابی ایک تار ہو رہا ہے، ہے اور بنیادی طور پر کچھ آپ کر سکتے ہیں JSON میں آپ کی جائیداد کی فہرست کے اندر اندر کر سکتے ہیں، تو یہ واقعی اچھی طرح سے ہمیں کچھ اعداد و شمار کے ساتھ مل کر کام کرنے کی اجازت دیتا ہے. مثال کے طور پر، میں اس Teams.plist کہ میں پیدا کی ہے. میں ایک نیا plist فائل پیدا کی ہے، اور میں نیچے ڈرل کر سکتے ہیں. یہ ایک لغت ہے، ایک لغت ہے، ان ڈور ہیں، اور اسی طرح یہ JSON دستاویز کی ایک اچھا گرافیکل نمائندگی ہے یا صرف کلیدی قدر جوڑوں کی ایک سیٹ اور اسی طرح یہ اعداد و شمار سے یہ ہے کہ میں میرے اے پی پی کے اندر کے ساتھ مل کر کام کریں گے. چلو، سب سے پہلے یہاں آ. اب ہم بہت زیادہ فائلوں ہے. لیکن پہلے ختم اسٹوری بورڈ یہاں آئے. اسٹوری بورڈ یہاں اگر میں زوم کر سکتے ہیں اب ہم دیکھ سکتے ہیں کہ یہ میرے اے پی پی کے بہاؤ ہے. میں نے سب سے پہلے اس کی سکرین پر شروع کرنے جا رہا ہوں. میں اس کی سکرین پر نیچے ڈرل جا رہا ہوں، اور میں اس کی سکرین پر نیچے ڈرل جا رہا ہوں، اور ہم یہاں دیکھ سکتے ہیں کہ اگر میں قسم کی ان میں سے ایک کے ارد گرد ہم یہ تیر یہاں سے جا رہا ہے، منتقل، اور جس طرح میں نے اس تیر کو وضاحت تھا اگر میں تھوڑا سا میں زوم، اور اگر میں اس نقطہ نظر کے کنٹرولر کو آتے ہیں، اور یہاں ایک سیل ہے، اور میں یہ کہنا چاہتے ہیں جب تم نے ایک سیل نل میں آپ کو کسی اور کی سکرین پر سلائڈ کرنا چاہتے ہیں. میں نیچے آسانی سے کنٹرول کر سکتے ہیں، تھوڑا سا پر سکرال، نیچے کنٹرول رکو، یہ سیل ختم کھینچ کر لائیں اور ہم چلتے ہیں. اور ہم یہاں کا کہنا ہے کہ منتقلی ہے کہ آپ استعمال کرنا چاہتے کیا ہے؟ کیا آپ کہ سلائڈ کی بات یہ ہے کہ دھکا کہتے ہیں استعمال کرنے کے لئے کرنا چاہتے ہیں؟ کیا آپ کو نیچے سے سلائڈ کرنا چاہتے ہیں؟ وہ ماڈل کہا جاتا ہے. اور ایک بار میں ان میں سے ایک پر کلک کریں، یہ میرے لئے اس تیر کے نشان پر اپنی طرف متوجہ ہو رہا ہے، اور اس کا مطلب یہ ہے کہ میں واقعی میں سنبھالا ہے کیا ہوتا ہے جب میں اس بٹن کو گراف پریس ہے. میں کوئی واقعی میں ایک اسکرین سے اگلے ایک سلائڈ کوڈ نہیں لکھا. میں اس انٹرفیس بلڈر کے ضعف کے اندر وضاحت کی ہے. اگر میں اس تیر کے نشان پر کلک کریں، ہم دیکھتے ہیں، کہ میں اس بات کو ایک نام دیا جا سکتا ہے. میں اسے showDivisions کہا جاتا ہے، اور اس میں تاکہ معلوم کر سکتے ہیں کیا منتقلی ہونے کے بارے میں ہے، اور ہم دیکھتے ہیں کیوں صرف ایک سیکنڈ میں کریں گے. اس طرح میں نے وائرڈ میری اپلی کیشن میں مختلف سکرین ہے. اگر یہ ایک بٹن ہے، مثال کے طور پر، کی بجائے ایک ٹیبل نقطہ نظر تھے، میں بٹن پر کلک کریں کو کنٹرول کر سکتے ہیں، اگلے سکرین پر کھینچ کر لائیں، اور یہ کہ میں جائیں ثانوی نیویگیشن طریقہ ہے کہ کس طرح کر سکتے ہیں. واقعی فوری طور پر، اگر ہم MasterViewController میں آتے ہیں، پھر، ہم صرف چیزوں کی فہرست کی وضاحت کرنے جا رہے ہیں جو میز کے خیال میں دکھایا جائے گا. یہاں میں یہ کہہ رہا ہوں میں تم سے اس plist فائل کرنا چاہتے ہیں کر رہا ہوں، اور میں تم سے یہ لغت میں اپ لوڈ کرنا چاہتے ہیں، اور ایک بار آپ اس ڈکشنری ہے، میں پھر ان ہی سوال کا جواب جا رہا ہوں. حصوں کی تعداد ہے. ایک، ہر لیگ کے لئے ایک، قطار، اور ہر سیل کا متن ہے یا تو سب سے پہلے، پہلی لیگ، دوسری لیگ اور اس میں ہونا چاہئے. آخر میں، میں یہ طریقہ استعمال کرنے کے لئے ہے کہ ہم صرف prepareForSegue کہا جاتا دیکھا جا رہا ہوں، اور یہ طریقہ نکال دیا جائے گا جب میں کلک کریں ہے ان قطاروں کی ایک اور اسی وجہ سے اس منتقلی کو چالو کرنے کے کہ میں تیر کے ساتھ قائم ہے. یہ کہہ رہا ہے کہ میں ایک سے زیادہ کر سکتے ہیں ہے ایک اسکرین سے ایک اور تعلقات. اگر میں 2 بٹن ہے اور ہر بٹن آپ کو ایک مختلف سکرین پر لے جاتا ہے میں ہر ایک کے بٹن کے لئے 2 segues، 1 جا رہا ہوں. لیکن اس prepareForSegue ہے، پھر سے، reused کیا جا رہا مختلف تعلقات میں سے ہر ایک کے لئے، تو اس کا مطلب ہے کہ میں نے ایک طرح سے کی ضرورت ہے اگر آپ پہلی بار بٹن دبائیں یا آپ کو دوسرا بٹن دبائیں شناخت کی. جب میں اس segue ایک نام، اس showDivisions دی یاد رکھیں، ہے کہ اب میں کس طرح جانتے ہیں کہ اس segue ہے جو چالو کیا گیا ہے. میں کرنا چاہتا ہوں ہے میں کہنا چاہتا ہوں مجھے معلوم کرنا ہے جو میں نے ابھی مارا چاہتے ہیں، اور تاکہ حاصل کرنے کے لئے میں کہتا ہوں، میں منتخب صف کے لئے indexPath چاہتا ہوں کر سکتے ہیں، indexPath یاد کا کہنا ہے کہ جہاں میں صرف کلک کیا ہے، اور پھر میں کہتا ہوں کہ مجھے معلوم کرنا ہے جہاں میں جا رہا ہوں چاہتے ہیں کرنا چاہتے ہیں. اس destinationViewController، کہ segue کی ایک خاصیت ہے. یہ سکرین میں جا رہا ہوں، تو میں جانتا ہوں کہ سکرین میں جا رہا ہوں DivisionsViewController کہا جاتا ہے کیونکہ میں اس کلاس پیدا، تو اب اگر میں d.divisions کا کہنا ہے کہ میں اب میں پر جانے کے لئے کے بارے میں نقطہ نظر کنٹرولر کی ایک خاصیت قائم کر رہا ہوں. اس کا یہ ہے کہ میں کس طرح ایک اسکرین سے ڈیٹا کسی اور کی سکرین پر بھیج رہا ہوں. اس DivisionsViewController دیکھ آپ یہاں دیکھ سکتے ہیں کہ H فائل میں کہ جائیداد تقسیم ہے، اور یہ کہ ہے کہ میں بنیادی طور پر populating رہا ہوں، تاکہ مجھے کس طرح پتہ ہے کہ میں اسی تقسیم کی نمائش کر رہا ہوں لیگ کہ میں کلک کیا ہے، بار، اصل میز کا منظر بہت ہی لگتا ہے، صرف ان کا جواب دے 3 آسان سوال کے طور پر ساتھ ساتھ کی شناخت جب آپ اگلے سکرین پر منتقل کیا ہوتا ہے. دیگر چیزوں کے ایک جوڑے کی ہے. آپ کو سب سے اوپر یہاں دیکھیں گے کہ بجائے کہا کہ # شامل اب میں کہہ رہا ہے # درآمد کر رہا ہوں. یہ صرف ایک مقصد C بات ہے. بنیادی طور پر درآمد شامل اچھا ورژن ہے، اور مثال کے طور پر، ہمیں یہ معلوم ہے کہ اس قسم کیا ہے کی ضرورت ہے، تو میں صرف DivisionsViewController نہیں کہہ سکتے ہیں. اگر ہم ہمارے سی فائل کے standardio.c اندر hashtag نہیں کیا سنکلک کوئی خیال نہیں کیا printf تھا تھا. اسی طرح اگر میں DivisionsViewController درآمد نہیں سنکلک کا واقعی کوئی خیال نہیں کیا ایک DivisionsViewController ہے ہے. بس اس بات کا یقین کر لیں کہ اپنا مختلف میٹر فائلوں کے اندر آپ کو درآمد کرنے کے لئے اس بات کا یقین کر اسی H فائلوں تاکہ سنکلک جانتا ہے کہ کیا ہو رہا ہے. آخر میں، کیا ایپل بالآخر ہے کچھ ایک ویب کے نقطہ نظر کا استعمال کرتے ہوئے ڈیٹا ظاہر، اور اسی طرح کی ایک ویب کے نقطہ نظر میں کسی چیز ہے جس میں آپ سرایت کر سکتے ہیں ہے آپ کے اپلی کیشن کے اندر اندر ایک چھوٹا سا ویب براؤزر. آپ کیا کرنے کی ضرورت ہے آپ کے ویب براؤزر میں ایک یو آر ایل فراہم کیا جاتا ہے، تو میں mlb.mlb.com پر جانا چاہتے ہیں، اور اس طرح سے میں ہر ٹیم کے لئے ہوم پیج تک رسائی حاصل کر سکتے ہیں، اور اس URL میں گزرنے والے کی طرف سے ویب قول میرے لئے یہ ظاہر ہے، اور میں کے ارد گرد براؤز کر سکتے ہیں کر سکتے ہیں، اور سمیلیٹر ایک اس سے استعمال میں ہے. اب یہ میری plist سے آیا ہے. اگر میں اس پر کلک کریں یہ بھی میری plist سے آیا، اور اس سلائیڈنگ کو سنبھالا گیا ان segues وضاحت کی طرف سے. میں اس پر کلک کریں اور ایک اور اب یہاں میری UIWebView تو بس ایسے ہی ہے، یہاں URL کے لئے ویب سائٹ ہے کہ میں صرف سرایت ہے، اور میں پاگل کچھ کو ہینڈل کرنے کی ضرورت نہیں تھی. اس کا یہ ہے کہ کس طرح ایک ویب صفحہ میں ظاہر کرنے کے لئے. یہ یہاں واپس بٹن کی طرح باتیں بھی مجھ سے دی جاتی ہے مکمل طور پر مفت کے لئے کیونکہ میں ان segues کا استعمال کرتے ہوئے تعلقات کو بیان کیا ہے. کوئی سوال؟ جی ہاں. [Student کی] تو جب آپ alloc کا استعمال کرتے ہیں، تو آپ مفت میں کچھ کبھی نہیں ہے؟ بالکل، جب آپ alloc اور init کہتے ہیں تو آپ یہ مفت نہیں ہے. IOS آپ کے لئے یہ سب سنبھال جا رہا ہے. یہ حیرت انگیز ہے، اور آپ کو کسی بھی قوانین توڑ نہیں کر رہے ہیں. جی ہاں. [Student کی] اگر آپ کو مزید ٹیموں کی سکرین پر فٹ کر سکتے ہیں شامل کرنے کے لئے تھے، خود کار طریقے سے یہ ایک کتاب اختیار ہے، یا یہ ہے کہ کچھ آپ کو شامل کرنے کی ضرورت ہے؟ بالکل، مثال کے طور پر اگر میں مزید ٹیمیں، یہ خود کار طریقے سے سے نمٹنے کے گے ، طومار کر رہا ہے، اور میرے لئے تمام کارکردگی تشویش بڑی میز کے ساتھ بھی میرے لئے مکمل طور پر کر رہے ہیں سنبھالا. دیگر سوال؟ اس کوڈ کو سب کے بارے میں کیا جا رہا ہے. ہم اس قسم کی معمولی تفصیلات تھوڑا سا پر glossed، لیکن ایسی باتیں ویب قول کی کچھ خصوصیات کی ترتیب صرف چیزیں ہیں جو آپ کو ایپل دستاویزات پر موجود کی طرف سے حاصل کر سکتے ہیں ہیں، جو واقعی ہے، سچ میں اچھی طرح سے رکھی. انہوں نے نمونے کے اطلاقات کی ایک بہت ہے اور مثال کے طور پر usages ہے مختلف APIs کا، تو یقینی طور پر آپ کر سکتے ہیں اگر ان کو peruse. بس کچھ مفید لنکس آپ پر ایک نظر ڈالیں کرنا چاہتے ہیں کر سکتے ہیں. یہ کچھ ہاتھ دستاویزات ہدایت ہیں. یو آر ایل میں بڑے پیمانے پر ہیں، تو وہ قصر رہے ہیں. یہ پہلا دستاویزات کی پوری لائبریری ہے. اس میں کوئی تلاش کے سلاخوں ہے، اگر ایسا ہے تو آپ کو ٹائپنگ کے بٹن شروع یہ آپ کو ہر چیز آپ کو ایک بٹن کے ساتھ کیا کر سکتے ہیں کے بارے میں تمام معلومات فراہم کرنا شروع کر دیں گے. میں نے جدول کوائف نامہ پروگرامنگ کی گائیڈ بھی شامل ہے. یہ بہت زیادہ تفصیل میں میز کے خیالات سنبالتی ہے، کس طرح چیزوں کی طرح کو متحرک طور پر خلیات یا ترمیم خلیات کا اضافہ کریں یا ان کو ختم کرنے کی. نمونہ اطلاقات ایپل سے بہت ہے کہ تمہیں دکھاتا ہوں کہ کس طرح ایسا کرنے کے لئے ہے، اور آخر میں، یہ گزشتہ ایک انسانی انٹرفیس ہدایات ہے، اور یہ بنیادی طور پر UI اجزاء میں سے کچھ بحث ہے، طرح ایک بٹن ہے جو 4 پکسلز کی طرف سے 4 پکسلز ہے نہیں ہے. یہ ایک برا خیال ہے، اور دوسری چیزوں کے کہ ایپل آپ چاہتے ہیں اچھا ڈیزائن کی حوصلہ افزائی کرنے کے لئے. اس سے پہلے کہ ہم ختم کے لئے کوئی آخری سوال؟ ٹھیک ہے، یقینی طور پر بحث پر خصوصی لیبلز we're بلا جھجھک. ہم ایک ایک iOS پڑے گا، تو یقینی طور پر ہے کہ استعمال کرنے کے لئے آزاد محسوس کرتے ہیں. اگر آپ اپنے ہم جماعتوں کے ساتھ منصوبوں پر کام کرنا چاہتے ہیں مدد یا کچھ بے ترتیب iOS چیزیں سمجھ مجھے ای میل کرنے کے لئے آزاد محسوس کرتے ہیں، اور یقینی طور پر تمام کوڈ کو آن لائن کی وجہ peruse ہم وقت کے مفاد میں اس قسم کی زیادہ سے زیادہ glossed چیزوں کی finer grained تفصیلات. لیکن اگر نہیں، تو پھر اپنے iOS منصوبوں پر اچھی قسمت، اور مجھے امید ہے کہ ہم نے اطلاقات کے اپلی کیشن سٹور میں ایک بڑی آمد. [CS50.TV]