[Powered by Google Translate] [সেমিনার] [iOS: একটি বস লেগেছে এপস লিখন] [টমি MacWilliam] [হার্ভার্ড বিশ্ববিদ্যালয়] [এটি CS50.] [CS50.TV] সমস্ত অধিকার, প্রত্যেককে, স্বাগত iOS: একটি ভালো বস এপস লিখন. এই সেমিনার আইফোনের জন্য অ্যাপ্লিকেশন লেখায় মন যাচ্ছে এবং ঘুরে রহমান অ্যাপ্লিকেশান জন্য লেখা, এবং তাই আমরা মূলত ভিতর দিয়ে হেটে যেতে করছি যাচ্ছে একটি দম্পতি কিভাবে একটি অ্যাপ্লিকেশন করতে বিভিন্ন উদাহরণ, একটি Tic Tac Toe মত সহজ খেলা, অথবা যদি আপনি নিউজ রিডার কিছু ভালো একটি অ্যাপ্লিকেশন তৈরীর আরো আগ্রহী অথবা কিছু ইন্টারনেট হিসাবে আমি যে ভাল সম্পর্কে কথা বলতে হবে সাথে মিথস্ক্রিয়া. এখানে আমাদের সংক্ষিপ্ত অ্যাজেন্ডা. IOS অ্যাপ্লিকেশনগুলি একটি ভাষা বলা লক্ষ্য-C-তে লেখা হয়, এবং তাই এই সামান্য বিট অনুরূপ সি যাও কিন্তু সত্যিই এ সব, তাই আমরা নিজেই ভাষা সম্পর্কে একটি সামান্য বিট হবে উচ্চারণকারী এবং তারপর কিভাবে এই আইফোন অ্যাপ্লিকেশন প্রোগ্রাম নামক XCode ব্যবহার অ্যাপস নির্মাণ, যা এখনো যদি আপনি ডাউনলোড এটি নি বোধ যাও এখন ডাউনলোড করা শুরু করুন. এটা কয়েক গিগাবাইট. এটা অ্যাপ স্টোর বিনামূল্যে হতে পারে, তাই আপনার একটি ম্যাক আছে প্রয়োজন হবে উচিত আদর্শভাবে অপারেটিং সিস্টেম X-র সর্বশেষ উপলব্ধ সংস্করণ যদি না থাকেন, কোন সমস্যা নেই. আমরা আপনার ব্যবহারের জন্য বিজ্ঞান কেন্দ্র Macs-উপলব্ধ আছে সঙ্গে XCode ইনস্টল করা, এবং তা উন্নয়নের জন্য যারা ব্যবহার করতে দ্বিধা বোধ করবেন না. আপনি যদি একটি অ্যাপ্লিকেশন করতে চান কিন্তু একটি ম্যাক আছে না, চিন্তা করবেন না. যে জন্য ক্যাম্পাস সম্পদ প্রচুর আছে. এবং তারপর আমরা বিভিন্ন 2 অ্যাপ্লিকেশনকে করতে পারেন তার বড় উদাহরণ আবরণ চলুন. Objective-C টেকনিক্যালি কি একটি সি এর সুপার সেট এর নামে তার মানে যে কোনো সি কোড এছাড়াও বৈধ Objective-C কোড. তার মানে যে আমরা নালী ধরনের কিছু সি অতিরিক্ত বৈশিষ্ট্যের উপর সঙ্গে টেপ এই বৈশিষ্ট্যগুলির কয়েকটি কখনও আবার malloc লিখুন থাকার মধ্যে আছে না, শ্বরপ্রসাদ, কোনো যারা মূঢ় পয়েন্টার চিন্তা হচ্ছে এবং তাদের freeing এবং যে সমস্ত উপাদান আপনি সি সম্পর্কে ঘৃণা, এবং তা ধরনের Objective-C এর মধ্যে চলে গেছে. এখন, এছাড়াও Objective-C একটি অনেক বড় মান লাইব্রেরি আছে, তাই অনেক অধিক কার্যকারিতার আপনি Objective-C-এর ভিতর জন্য বিনামূল্যে পাওয়া যায়. যখন আমরা পিএইচপি লেখা হয়েছিল মনে রাখবেন আমরা লক্ষ্য করেছি যে, আমরা গিয়েছিলাম থেকে এই সব ছবি আছে যা আপনি করতে পারেন দৈত্য গ্রন্থাগারের যাও ক্ষুদ্রতম ভাষা. একই জিনিস iOS হতে থাকে. বৌদ্ধ ক্যালেন্ডার জিনিস যেমন বস্তু আছে, এবং সত্যিই কিছু আপনি সম্ভবত সম্ভবত Objective-C এর বাস্তবায়ন ইতিমধ্যেই বিদ্যমান মনে করতে পারেন. Objective-C-এর উদ্দেশ্য কিছু অংশ উল্লেখ করা হয় বলা হয় অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং. এটি একটি নতুন ধারণা ধরনের, কিন্তু আমরা আসলে বেশিরভাগ করেছি শেখা এই ধারণার একটি ইতিমধ্যে অনেক. অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং এর পিছনে ধারণা হয় যে আপনি গঠন চলুন আপনার কোড একটি এইসব জিনিস চারপাশে অনেক ক্লাস বলা হয়, এবং সত্যিই এই ক্লাস structs glorified হয়. আমরা এখানে মূলত বলেন, একটি struct ভিতরে একটি জিনিস, এবং এই জিনিস সদস্যদের থাকতে পারে. উদাহরণস্বরূপ, একটি লিঙ্ক তালিকায় একটি নোড অন্যান্য বিষয় হতে পারে ভালো একটি মান, তালিকায় পরবর্তী নোডের একটি পয়েন্টার, এবং একসাথে যে পয়েন্টার এবং যে এই মান একটি struct এক ইনস্ট্যান্স ক্ষান্ত. ক্লাস খুব অনুরূপ ছাড়া ক্লাস এছাড়াও তাদের ভিতর ফাংশন থাকতে পারে. যখন আমরা একটি struct ঘোষণা, আমরা শুধুমাত্র int-n বা নোড * পরবর্তী বলতে পারে. এখন Objective-C সঙ্গে আমরা আসলে ফাংশন লাগাতে পারেন ভিতর সেগুলো. আরেকটি জিনিস যে ক্লাস করতে পারেন হয় তারা অন্যান্য ক্লাস থেকে তথ্য উত্তরাধিকারী করতে পারেন. উদাহরণস্বরূপ, আমরা অন্তর্নির্মিত Objective-C শ্রেণীর একটি গুচ্ছ এ যাবেন খুঁজছি. তাদের মধ্যে একজন বর্গ যে একটি পর্দা জন্য দেখুন উপস্থাপন হতে পারে, বলে তাই আমি এবং আমার নিজের দেখুন বাস্তবায়ন করতে চান আমরা মূলত এ আপেল উপর কেউ, সম্ভবত সত্যিই চমৎকার মানুষ বলে, আমার জন্য এই বর্গ লিখেছে, এবং এটি বাটন প্রদর্শন করা ভালো জিনিস হ্যান্ডলগুলি পর্দা বা রেন্ডারিং, এবং আমরা সত্যিই বেদনাগ্রস্ত হবে যাও যে সমস্ত কার্যকারিতা নিজেদেরকে বাস্তবায়ন, এবং তাই দ্বারা সহজভাবে তথ্য inheriting আমরা যা যে বর্গ করেছিল বলতে পারেন আমি আমার ভিতর বর্গ করতে চান, এবং তারপর আমি কিছু অন্যান্য উপাদান না চলেছি, যেমন একটি অ্যাপ্লিকেশন বাস্তবায়ন. যে এর মানে কি যে শব্দ উত্তরাধিকার. আমরা আরো একটি কংক্রিট উদাহরণ দেখতে পাবেন. এবং পরিশেষে, অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং এর সঙ্গে কি হল এটি তথ্য encapsulation বাড়ে. ইন আমাদের সমস্যার কিছু সেট করে আমরা এই বড়, গ্লোবাল ভেরিয়েবল আছে পারে এবং সর্বত্র globals, এবং যে কিভাবে আমরা রাষ্ট্র ট্র্যাক রাখতে চাই. ক্লাস সঙ্গে আমরা একটি বস্তুর ভিতর তথ্য encapsulating শুরু করতে পারেন. যদি আমরা আমাদের অ্যাপ্লিকেশন এক পর্দা থাকে, তাহলে আমরা থেকে কোনো তথ্য আছে প্রয়োজন সত্যিই না আমাদের যে অ্যাপ্লিকেশন ভিতরে অন্য পর্দা, ক্লাস মধ্যে জিনিষ encapsulating দ্বারা এবং এই আসলে বাড়ে অনেক ভালো কোড নকশা, এবং এই অতিরিক্ত বৈশিষ্ট্য কিছু করা সম্ভব উদ্দেশ্য-C-তে. Forewarning, Objective-C জন্য সিন্টেক্স হল কলা. এটা কিছুই আমরা আগে দেখা করেছি ভালো হয়, তাই একটি একটি শেখার ব্ক্ররেখায় ব্যবহৃত হচ্ছে সামান্য বিট নরক কি এই মানে? কিন্তু একবার আপনি পেতে অতীতের যে প্রাথমিক শিক্ষা বক্ররেখা এটা আসলে সত্যিই, মসৃণ যাও অ্যাপ্লিকেশান লেখা শুরু. একটি বর্গ, ডিক্লেয়ার এখানে বলতে হয় আমার বর্গ, এটি বিদ্যমান, এবং এখানে হয়তো কিছু জিনিস আছে যা আমি পরে সংজ্ঞায়িত চলেছি, আমি @ ইন্টারফেস বলতে যাচ্ছি. আমি @ ইন্টারফেস বলতে যাচ্ছি. আমি একটা নাম দিন আমার বর্গ যাচ্ছি. এবং তারপর পরে অন্য কোথাও আমি @ শেষ বলতে যাচ্ছি, মধ্যে @ @ ইন্টারফেস এবং শেষ এবং সবকিছু আমার ক্লাস হবে. যে কি আমাদের. জ ফাইল এর ভিতর হতে যাচ্ছে. ঠিক যেমন সি আমাদের. জ ফাইল মূলত এখানে কিছু বলেন যে বিদ্যমান হবে. আমি আপনাকে করছি অগত্যা বলছে না কি তারা এখনো না, কিন্তু কম্পাইলার যে সেগুলি জানা প্রয়োজন. পরে ভিতর আমাদের. মি ফাইল কারণ Objective-C জন্য মি হয় যেখানে আসলে আমরা কি এই ক্লাস না সংজ্ঞায়িত করছি যাচ্ছে. অনেক আমাদের. গ ফাইল এর মতই, আমরা ফাংশন জন্য একটি বাস্তবায়ন দেওয়া. আমাদের ভিতর. মি ফাইলের আমরা এখানে বলতে যাচ্ছি সেটি কি র সমস্ত কর্ম ব্যবহার আমার বর্গ-কি সব তারা ভেতরে. এবং পরিশেষে একটি struct ভেতরে, আমরা যারা ভিতরে কোঁকড়া ধনুর্বন্ধনী সারাংশ বলতে পারে int-n বা নোড * পরের, এবং Objective-C, আমরা যাও @ সম্পত্তি ব্যবহার কীওয়ার্ড চলুন, এবং এই কি বৈশিষ্ট্যগুলি সংজ্ঞায়িত করবে, অথবা অ ফাংশন যে আমার ক্লাস একটি অংশ. Objective-C ইন ফাংশান কল করা হয় কলা. যখন আমরা সি ইন ফাংশান উপস্থিত করা ঘোষিত আমরা int-foo এর মত কিছু বলেন এবং খোলা paren তারপর দিয়েছেন এবং আর্গুমেন্ট একটি তালিকা এটি. এটা কি এ Objective-C ভালো পদ্ধতি বা ফাংশন প্রকাশক দেখায়. যদি আমি একটি কার্যকারিতা অথবা একটি পদ্ধতি ডিক্লেয়ার করতে চান যেখানে আমি পদ্ধতি বলছে করছি সত্যিই শুধু একটি ফাংশন এর একটি বর্গ একজন সদস্য, তাই বিনিমেয় ধরনের, কিন্তু বাস্তবে নেই, যাতে ভিতর আমার পদ্ধতি আমি একটি নতুন পদ্ধতি তৈরি করতে চান. কিছুই ফিরে যাচ্ছে, তাই এর টাইপ অকার্যকর করা হচ্ছে. এটা আমার ফাংশন রিটার্ন টাইপ. এখন আমরা parens এখানে আছে কারণ, আমি জানি না. পরবর্তী আমার ফাংশনের নাম হবে, এবং পরিশেষে তারপর আমরা মাত্র আমরা সি ছিল ভালো একটা সেমিকোলন আছে কি এখানে নতুন এটি এখানে লোক. এই হাইফেন হয় আসলে প্রয়োজন, এবং কি এই বলে যে এখানে এই পদ্ধতি একটি বর্গ একটি দৃষ্টান্ত হবে বলা. পরে আমরা আমাদের structs ঘোষিত সম্ভবত আমরা কিছু বলেছি ভালো struct নোড হবে, এবং যে আসলে তৈরি অথবা যারা structs এক instantiated যাতে আমি আসলে কাজ শুরু হতে পারে এটা কি ভেতরে এর সঙ্গে, তাই এই ড্যাশ মানে যে আমরা আছে বর্গ শুধু আমরা না instantiated instantiate যে struct আগে আমরা এই পদ্ধতি কল করতে পারেন. যদি আমি আমার পদ্ধতি আর্গুমেন্ট যোগ শুরু করতে চান এটি আরও কলা পায়. এখানে আমার পদ্ধতির নাম. তারপর আমি একটা কোলন আছে যাচ্ছে, এবং করছি তা এই মলাশয় পরে এখানে বলে কিছু আর্গুমেন্ট আসে. এই পদ্ধতি একটি যুক্তি লাগে. যুক্তি প্রকার হল কোন int, এবং যে যুক্তি নাম পরিবর্তনশীল বা আমি যে পদ্ধতিটির ভিতর ব্যবহার শুরু করতে যাচ্ছি তোমার বলা হয়. আবার, এই হল পদ্ধতি. একটা যুক্তি প্রদর্শন করা হয়. আপনি যদি আরো আর্গুমেন্ট যোগ করতে চান সেটি এটি আরো কলা পায় যে, আমরা এই মলাশয় যে এখানে বলছেন আর্গুমেন্ট আমার তালিকা আছে আসে. এই প্রথম যুক্তি হল একটি পূর্ণসংখ্যা. এখন, এই দ্বিতীয় যুক্তি হল আকর্ষণীয়. পরিবর্তনশীল যে আমি আমার ভেতরের ফাংশন ব্যবহার করা যাচ্ছে না বলা হয় f, তাই আমার ভিতর ফাংশন আমি বলতে পারে চ + = 1 অথবা কিছু. এই জিনিস এখানে মূলত যে যুক্তি বা পরামিতির জন্য একটি কি. শুধু ভালো আমরা কী মান জোড়া ছিল এবং JSON অথবা মিশুক অ্যারে মত Objective-C, বলে সিদ্ধান্ত ঠিক আছে, ঠিক তাই যে এটা আসলে খুব স্পষ্ট যখন আপনি একটি পদ্ধতি কি সব এই পরামিতিগুলি কল আমি আসলে করছি তাদের সমস্ত নাম যাচ্ছে. আপনি যখন একটি পদ্ধতি কল, আপনি আসলে andFloat বলবো, এবং তারপর আপনি এটি পাস ইন করব মজার, এই এক, কিন্তু না নামে না অন্যান্য পরামিতি সব হয়, তাই যদি আমরা একটি 3 য় যুক্তি ছিল আমি andFloat বলতে পারে এবং অন্য float এবং তাই. যখন আমি এই পদ্ধতি কল অবশ্যই কলা হয়, সুতরাং যদি আমি একটি বস্তু আছে, এবং আমি একটি পদ্ধতি বলা foo বিন্যাস নির্ধারিত, এবং আমি এটি যাও, বদলে foo বিন্যাস কল খোলা / বন্ধ parens বলছে চান আমি একটি বন্ধনী খোলা যাচ্ছে না. এখানে আমার পদ্ধতির নাম. আমি ব্র্যাকেট বন্ধ করতে যাচ্ছে, এবং করছি এই বস্তু আমি এটা করছি কলিং. মনে রাখবেন, এই পদ্ধতি সব শ্রেণীর মধ্যে উপস্থিত থাকা কারণ ক্লাস তাদের ভিতর নির্ধারিত পদ্ধতি থাকতে পারে. এখানে ইচ্ছামত আমি কিছু বর্গ একটি অবজেক্ট তৈরি করে, এবং এই জন্য যে কাজ সিনট্যাক্স. একটি বস্তুর সৃষ্টি 2 ধাপ আছে. প্রথম ধাপে আমি স্থান বরাদ্দ করা চান বলতে হয়. এটি একটি malloc সমতুল্য. আমরা আর malloc বলতে হবে না. আমরা মি বাদ পড়েছে, এটা alloc করেছি, এবং. সঙ্গে মি. গ প্রতিস্থাপিত. আমরা alloc কিছু পরে আমরা তখন এটি আরম্ভ করা প্রয়োজন. মূলত যখন আপনি অবজেক্ট তৈরি করতে আপনার কিছু যুক্তি আছে চাইবেন যে executes যখন তারা তৈরি করছি, তাই আপনার আর কিছু ডিফল্ট মান মধ্যে পাস করতে পারেন বা ওই জাতীয় কিছু, তাই এই init পদ্ধতির কি আসলে বস্তুর সৃষ্টি করে. আমরা প্রথম স্থান, যেমন আমরা সি বরাদ্দ করা হয়নি, এবং তারপর আমরা এটি আরম্ভ করা যা বা পুরো অনেক পারে না. তারপর আমরা একটি বস্তুর ণ মধ্যে এই জিনিস ফেরত করছি. এখানে আছে একটি তারকা কারণ এই টেকনিক্যালি একটি পয়েন্টার, কিন্তু, না পয়েন্টার যে বড় Objective-C মধ্যে একটি চুক্তি হয় না আর চিন্তা করবেন না. এখন আমরা এই বর্গ নামক NSObject instantiated করেছি, এবং এটা একটা র্যান্ডম বর্গ যে আপেল আছে. আমরা এই instantiated করেছি, এবং এখন আমি এই ক্লাসের একটা উদাহরণ আছে এই বস্তু ণ, তাই তার মানে যদি আমি সংজ্ঞায়িত এই পদ্ধতি আমি ভালো তাদের কল করতে পারেনি. একইভাবে, যদি আমি একটি আর্গুমেন্ট সহ একটি পদ্ধতি কল চেয়েছিলেন, তাই এই বার পদ্ধতি, যে এক যুক্তি লাগে, এবং এখানে baz: qux পদ্ধতি, তাই এই 2 আর্গুমেন্ট লাগে. এই এই বস্তু ণ এক ক্রিয়া করে কলিং. জানার জন্য? সিনট্যাক্স জানার জন্য, কিন্তু আপনি কোন ধরনের এটি ব্যবহার করতে হবে. ঠিক আছে, আমি কিছু বিষয় আছে যা Objective-C মধ্যে নির্মিত হবে সম্পর্কে কথা বলা যে অগত্যা ছিল নির্মিত সি মধ্যে না সি ইন আমরা এইসব মূঢ় অক্ষর অ্যারে হিসাবে স্ট্রিং মোকাবেলা ধরনের ছিল, এবং এটি পেয়েছেন সত্যিই বিরক্তিকর. Objective-C যাদের সব আমাদের জন্য নির্মিত হয়েছে, এবং এটি নির্মিত এর এই বর্গ নামক NSString ব্যবহার করে. যখন আমি একটা NSString আমরা আরো রহস্যময় আছে সিনট্যাক্স তৈরি করতে চান. বরং "cs50" আমরা বলতে @ "cs50" বলছে এবং এটা লক্ষ্য-C-স্ট্রিং ঘোষণা করার জন্য বাক্য গঠন. এটি অত্যন্ত সহজ, তাই ভুলবেন না. এখন, আমি একবার এই আছে, এই একটি স্ট্রিং, কিন্তু লক্ষ্য করা এটি সত্যিই একটা বস্তু. আমি NSString বলেন, যার অর্থ আমি বর্গ instantiated বলা NSString, যা অন্য কারোর জন্য সম্পর্কে লিখেছেন, এবং তারা এটা আমার খুবই ভালো, এবং তাই এখন আমি পদ্ধতি কলিং শুরু করতে পারেন. যদি আমি এই বস্তুর উপর গুলি পদ্ধতি দ্বারা কল এটা আমার স্ট্রিং এর দৈর্ঘ্য ফিরে যাচ্ছে. শুধু strlen মত এই সি হয় এই 4 ফিরে আসবে. একইভাবে, আমি অন্য পদ্ধতি সম্পর্কে যত্ন করতে পারেন এই characterAtIndex. এটি একটি পদ্ধতি এই স্ট্রিং গুলি যে বলছেন আমি আপনি zeroth চরিত্র পেতে চাই, এবং তাই এই সম্পর্কে অক্ষর গ যাও ফিরে আসবে, এবং সামগ্রিকভাবে এই পদ্ধতি এক গুচ্ছ আরো যে আপনি সত্যিই সহজে Google-পারেন. Apple-এর ডকুমেন্টেশন মহান, এবং আমরা যে সময়ে একটি কিছুক্ষনের মধ্যে বর্ণন নেব. সেগুলো হল স্ট্রিং. আমরা পরিবর্তনশীল আকার অ্যারে বিল্ট ইন আছে সি মনে রাখবেন, যখন আমরা একটি অ্যারের ঘোষণা আমরা আপনাকে 5 উপাদান, কাহিনী শেষ আছে বলে ছিল. যখন আমরা জাভাস্ক্রিপ্ট এবং পিএইচপি যাও পেয়েছিলাম আমরা শুরু করতে পারি নি উপাদান যোগ বা উপাদান সরানোর মত জিনিসগুলি. আমরা লক্ষ্য-C-তে একই কাজ করতে পারেন. বরং স্বাভাবিক সি ভাবে একটি অ্যারে নির্মাণ আমরা আবার অন্য বর্গ নামক NSMutableArray. এর রয়েছে NSArray, এবং এই যাও মূলত কিছু অ্যারের encapsulate যাচ্ছে. এই জিনিস আমি প্রথম বলে যেতে চাই আমি ধার্য করতে চান একটি নতুন অ্যারের জন্য স্থান, এবং পরে আমি এটা বরাদ্দ আমি তখন এটি আরম্ভ করা প্রয়োজন. আবার ঠিক, এই পদ্ধতি 2 কলিং. এখন এই যে এই বস্তুর ভিতর একটি অর্থ আমি খালি একটা অ্যারে আছে বসা. যদি আমি এই অ্যারে কিছু যোগ করতে চান, আমি addObject পদ্ধতি কল করতে পারেন. আমি একটি অ্যারের একটা অবজেক্ট যোগ করতে চান, এবং আমি স্ট্রিং CS50 যোগ করতে চান. যদি আমি বিপরীতক্রমে যে আমি বলতে পারে সরাতে চেয়েছিল আমি চাই যাও শৃঙ্খলার প্রথম স্থানে বস্তু বা সরানোর জন্য একটি বস্তুর. জানার জন্য? ঠিক আছে, আপনি এই ধরনের গুরুবন্ধনী জিনিস ব্যবহার করতে পারেন. অ্যাপল এর মধ্যে লাইব্রেরির অনেক ভিতরে যাইহোক, আপনি কি এই ns দেখতে পাবেন. Ns আসলে পরবর্তী পদক্ষেপ, যা ছিল স্টিভ জবস প্রথম কোম্পানীর এক ঘোরা, এবং যে যেখানে সত্যিই তিনি শুরু কোড অনেক লেখা হিসাবে ম্যাক OS X এবং অন্যান্য পণ্যদ্রব্য জন্য সব ধরনের ভিত্তি, এবং তাই এই ns এই চমৎকার লিগ্যাসি ধরনের আগে কোম্পানীগুলো এক আউট চিত্কার ফিরে যখন প্রথম শুরু ছিল আপেল আউট. এটা সর্বত্র এর. যাক এর আরো একটি হোলিস্টিক Objective-C উদাহরণ কটাক্ষপাত করা. এখানে আমি XCode ভিতরে am. এখানে, প্রথম আমি অ্যাপ স্টোর থেকে XCode ডাউনলোড, এটি খোলা পর্যন্ত, এবং তারপর আমি গিয়েছিলাম ফাইল এখানে আপ, উপর এখানে নতুন, এবং তারপর প্রকল্প. পরে আমি যে আমি সব এই বিকল্প কি আছে আমি তৈরি করতে চাই, এবং যাতে আমরা এই বিকল্প কটাক্ষপাত করে পরে নেব, কিন্তু শুধু এই উদাহরণস্বরূপ, কারণ আমরা এখনো একটি অ্যাপ্লিকেশন আছে আসলে যাচ্ছে না থাকেন, আমি এখানে এসে নিচে, আমি এবং বলেন, কমান্ড লাইন থেকে ব্যবহারযোগ্য সরঞ্জাম, এবং এই একটি অ্যাপ্লিকেশন যা আমি কমান্ড লাইনে চালানো হবে আমরা ঠিক করেছি চলমান সি থেকে করা হয়েছে এটা কিভাবে আমি এই প্রকল্প তৈরি, এবং তাই এখন আমি এখানে নিলাম, তাই এর এই ফাইলটি প্রথমে, এই দিন এবং চমত্কার পরিচিত হওয়া উচিত. আমি কোন int নাম আছে. আমার বন্ধু argc, আমার অন্যান্য বন্ধু argv আছে. তাই আমরা যে এই আমার প্রথম Objective-C অ্যাপ্লিকেশনের জন্য এন্ট্রি বিন্দু দেখতে পারেন. এখানে আমরা এখন জন্য এই উপেক্ষা করতে পারেন. এই মূলত কিছু মেমরি ব্যবস্থাপনা উপাদান যে আপনি না সত্যিই, কখনও চিন্তা আছে. যাক এই প্রথম ব্লক এখানে এর চেহারা. এই প্রথম লাইন, যদি আমি বলতে ছাত্র * alice = [[ছাত্র alloc] init] কি যে করছে? এই প্রথম এখানে ছাত্র, সম্ভবত এই একটি বর্গ. এই হল, কিন্তু একটি শ্রেণী যে আপেল লেখেন না যে এটা একটা বর্গ যে আমি লিখেছি. প্রথম জিনিস আমি করতে হয় আমি একটা নতুন ছাত্রদের জন্য স্থান বরাদ্দ করা চাই, এবং তারপর আমি এটি আরম্ভ করতে চান, তাই এই সম্পর্কে ফেরত দেয় এই নতুন ছাত্র বস্তু, এবং আমি একটি পরিবর্তনশীল নামক এলিস এই সংরক্ষণ করছি. যেখানে যে বর্গ বার থেকে আসে? উপর এখানে বাম পাশে ভাল, এই হল আমার প্রকল্পের মধ্যে বিভিন্ন ফাইল সব. আমরা এখানে আমি একটি Student.h এবং একটি Student.m আছে দেখতে পারেন. . জ ফাইল, মনে হয় যেখানে আমি সব জিনিস ডিক্লেয়ার যে বর্গ মধ্যে উপস্থিত হবে. চলুন যে কটাক্ষপাত করা. ঠিক আছে এখানে, আমরা এই @ ইন্টারফেস আছে, এবং এই বলে যে এখানে আসে সবকিছু যে আমার বর্গ মধ্যে উপস্থিত হবে ঘোষণা. তারপর আমি একটি কোলন আছে. তারপর আমি এই NSObject জিনিস আছে. এই মলাশয় যে উত্তরাধিকার বিট আমরা কিছুক্ষন আগে আলোচনা করা হয়েছে উল্লেখ করা হয়. এই বলে সবকিছু একটি NSObject করতে পারেন যেখানে NSObject এই বর্গ অন্য কারো দ্বারা লিখিত, সবকিছু এই NSObject করতে পারেন আমি কি সেটা সক্ষম হতে চান. বলে: যে NSObject মানে হল যে আমি মূলত অন্য শ্রেণীর কার্যকারিতা সব উত্তরাধিকারসূত্রে প্রাপ্ত. যে সত্যিই দিয়েছিলেন একটি পদ্ধতি এবং বিভিন্ন বৈশিষ্ট্য ব্যবহার করতে পারেন যে আমি আভা সম্পর্কে. নিচে এখানে আমি 2 বৈশিষ্ট্য তৈরি করছি. যে আমার ছাত্র মানে, যদি এই ছিল একটি struct, এইসব 2 জিনিষ হবে আমার struct ভেতরে, তাই প্রত্যেক ছাত্র একটি নাম আছে যে একটি স্ট্রিং, এবং একজন ছাত্র একটি গ্রেড আছে, যা কোন int. অবশেষে, এখানে নিচে আমি আমার ছাত্র জন্য একটি পদ্ধতি তৈরি করতে হবে. আমি আমার পদ্ধতি বলা হয়, initWithName, এবং এটি একটি যুক্তি লাগে, এবং যে যুক্তি একটি স্ট্রিং, এবং আমি নামক এটির নাম দিন. এখন আসুন আমরা আসলে কিভাবে এই বর্গ বাস্তবায়িত তাকান. এখানে এখন, আমি আমার. মি ফাইলটি ভিতরে আছি, বাস্তবায়নের জন্য মি, আমি অনুমান. আমি আমার বাস্তবায়ন আছে, আমার শেষ, এবং এখানে দেওয়া হল যেখানে আসলে আমি সংজ্ঞায়িত করছি কি initWithName আছে. আমি initWithName, আমার পরামিতির নাম, এবং তারপর এই আছে যেখানে আসলে আমি একজন ছাত্র তৈরি করছি, এবং তাই এই সামান্য বিট রহস্যপূর্ণ, কিন্তু এই ধরনের boilerplate আপনি যে আপনার কন্সট্রাকটর অন্তর্ভুক্ত করতে চান. এই প্রারম্ভিক এখানে ফাংশন, initWithName, হয় রচয়িতা একটি প্রকার. আপনি মূলত করছি একটি নতুন ছাত্র বস্তুর গঠন এবং হয়তো তা ভিতর কিছু তথ্য প্রেরণ. প্রথম জিনিস আমি যেতে চাই আমি এই সুপার জিনিস উপর init কল করতে চান. মনে রাখবেন যখন আমি. জ ফাইল বলেন, এখানে ফিরে যে সবকিছু একটি NSObject আছে একজন ছাত্র আছে. তার মানে যখন আমি একজন ছাত্র কি আমি যা করতে হবে তৈরি করা নিশ্চিত করুন যে NSObject যে আমি থেকে যে সমস্ত তথ্য করছি inheriting হয় সঠিকভাবে সক্রিয়া. আমি কি বলার প্রয়োজন হয় এই সুপার প্রকৃতপক্ষে ঊর্ধ্বতন বর্গ পড়ুন যাচ্ছে যে আমি থেকে inheriting করছি, তাই আমি নিশ্চিত আমি আরম্ভ করতে চাই যা আমি আগে আমি শুরু এটি নির্ভর করে ব্যবহার করার চেষ্টা করছি. তারপর সঠিকভাবে যদি সক্রিয়া করা যে এই মাত্র বলছে ভালো হয় যদি malloc বার নাল ফিরে না তারপর আমি কিছু বৈশিষ্ট্য নির্ধারণের শুরু করতে পারেন. জাভাস্ক্রিপ্ট এবং পিএইচপি আমরা এই অভিব্যক্তি এই বলা যায়, এবং এই একটি বর্গ বর্তমান উদাহরণস্বরূপ বলা. Objective-C আমরা এই আত্ম কল. যখন আমি self.name বলে, যে এর মানে হল যে বস্তু আমি ঠিক তৈরি যখন আমি ছাত্র alloc init, যে আমাকে ফেরত দিতে একটি বস্তুর যাচ্ছে. তার মানে আমি যে বস্তুর নাম সেট করতে চান যাই হোক না কেন যাও শুধু আমি পাশ ইন সি মতো, আমরা এই বিন্দু দিয়ে সদস্যদের অ্যাক্সেস, তাই self.name বলছেন ছাত্র বস্তুর নাম না এখন ঠিক যাই হোক না কেন আপনি পাশ ইন করা যাচ্ছে তাই পরিশেষে, আমি এটা ফেরত তাই আসলে আমি কিছু ফিরে পাবেন না. প্রশ্ন? ঠিক আছে, তাই এই স্ব = সুপার init, যদি আপনি সম্পূর্ণ উত্তরাধিকার উপাদান জানি না চিন্তা করবেন না. শুধু জানি যে আপনি যদি কখনও আপনার নিজের init পদ্ধতির করতে চান যে, না এবং আপনি যেতে পারবেন. হাঁ. >> [ছাত্র] যদি স্ব গড় আছে? এর মানে হল যখন আমরা কিছু আমরা সবসময় চেক যদি এটি ছিল সমান নাল যাও malloc, এবং যদি এটি ছিল নাল তারপর, আমরা প্রস্থান করেছে. এই একই জিনিস, কারণ যদি এই আয় নাল তারপর, আমরা seg ফল্ট সম্ভবত করছি যাচ্ছে যদি আমরা শুরু এটি নিপূণভাবে চেষ্টা. এটা আমাদের ছাত্র বর্গ. তার মানে আমরা দুটি পদ্ধতির মাধ্যমে আমাদের ছাত্র আরম্ভ করতে পারেন. যদি আমি বলতে ছাত্র alloc init আমি যে শুধু আমি লিখেছি যে পদ্ধতি ব্যবহার করে না, এবং পরিবর্তে আমি সহজভাবে alice.name বলতে পারেন, এবং এখন আমি যে সম্পত্তি নাম সেট যাচ্ছি. একইভাবে, যদি আমি যে initWithName পদ্ধতি ব্যবহার করতে চান আমি সহজভাবে alloc, বলতে পারেন এবং তারপর বদলে বলছে init আমি যে পদ্ধতি যে শুধু আমি তৈরি কল যাচ্ছে, এবং করছি আমি বব পাস যাও যাচ্ছি. এই মুহুর্তে, এই বস্তু বব নামের একটি সমান বব আছে. ঠিক আছে, এখানে নিচে আমি যে NSMutableArray যে আমরা আগে দিকে তাকিয়ে ব্যবহার করছি. আমি space.Then করছি বণ্টন আমি একটি নতুন অ্যারে আরম্ভ করছি. আমি এটা 2 জিনিস যোগ যাচ্ছি. এই অ্যারে এখন ছাত্র বস্তু ঝুলিতে. উল্লেখ্য দাঁড়াতেই আমি এই হল ছাত্রদের একটি অ্যারে বলতে থাকেন. আমি আগেই বলেছি এটা একটা অ্যারে, সময়ের. তারপর আমি তা যাই হোক না কেন ভিতরে যে আমি চাই লাগাতে পারেন. এখানে আমি 2 বস্তু আছে. অবশেষে, আমি অন্য বস্তুর এখানে আছে, এই TF. ওভার এখানে TF.h মূলত একই জিনিস. আমি থেকে NSObject, এবং উপায় দ্বারা inheriting করছি, আপনি যখন ক্লাস তৈরি এই সব আপনার জন্য হয়, ইন্টারফেস boilerplate এই ধরণের. এটা ছাত্র একটি সম্পত্তি আছে. আমি এখানে যে একটি সম্পূর্ণ অনেক সত্যিই করবেন না একটি দম্পতি পদ্ধতি, এবং যাতে মানে পরে আমি এই TF অবজেক্ট তৈরি আমি ভালো এই এটিতে পদ্ধতি গ্রেড কল করতে পারেন. Objective-C সিনট্যাক্স উপর কোন প্রশ্ন করার আগে আমরা আরো কিছু শুরু করে চলন্ত আকর্ষণীয় অ্যাপ্লিকেশান উন্নয়ন স্টাফ? ঠিক আছে, তাই আমি কি আসলে একটি আইফোন অ্যাপ্লিকেশন তৈরি করতে. আপনার আইফোন অ্যাপ্লিকেশন কোর ক্লাস যে আপনি ভিতর ব্যবহার করা হবে দেখুন কন্ট্রোলার বলা হয়, এবং মূলত একটি নিয়ামক একটি একক পর্দায় উপস্থাপন আপনার অ্যাপ্লিকেশন ভিতরে তাই, যদি আমি সঙ্গীত অ্যাপ্লিকেশন না, যেমন, একটি দৃশ্যের নিয়ামক দৃশ্য যা আমি আমার আইফোনের সব গান দেখতে প্রতিনিধিত্ব করতে পারে. আরেকটি দেখুন নিয়ামক যখন আমি একটি গান এবং ক্লিক করুন এটি খেলা শুরু হতে পারে অথবা হিসাবে আমি শিল্পীদের মধ্যে খনন করছি নিচে. যারা বিভিন্ন পর্দা প্রত্যেকটি একটি দৃশ্য নিয়ামক হিসাবে প্রতিনিধিত্ব করা যায়নি, এবং একটি নিয়ামক সত্যিই শুধু বর্গ যে কিভাবে এই পর্দায় কাজ করে. একটি দৃশ্য নিয়ামক ভিতরে থিংস, আমরা বৈশিষ্ট্য আছে চলুন, তাই একটি বাটন মত জিনিষ আমাদের দেখুন নিয়ামক একটি সম্পত্তি হতে যাচ্ছে. আমরা করছি পদ্ধতি চালু আছে, এবং মূলত এই ইভেন্ট হ্যান্ডলার হয়. এই পদ্ধতি বলছেন যখন আপনি এই বোতাম টিপুন আমি কোনো কিছু করতে চান, এবং পরিশেষে, আবার, আমরা এই আত্ম অভিব্যক্তি বর্তমান ইনস্ট্যান্স অ্যাক্সেস করতে ব্যবহার করা চলুন. যাও iOS মধ্যে ইন্টারফেস নির্মাণ আসলে সত্যিই সত্যিই, সহজ. তারা এই সুন্দর ড্র্যাগ এন্ড ড্রপ ইন্টারফেস নামক নির্মাতা ইন্টারফেস আছে, এবং 2 কোর ধারণা যে পর্যন্ত আপনার Objective-C ইন্টারফেস নির্মাতা যাও টেলিগ্রাম IBOutlet হয় এবং IBAction. একটি IBOutlet সহজভাবে বলছেন যে আপনি যদি একটি সম্পত্তি যে এর একটি বাটন ঘোষণা, এবং আপনি তা হুক আপনার প্রকৃত UI 'তে কিছু যাও আপ করতে চান, আপনি এটা একটা নালী বলে যাচ্ছেন. একইভাবে, আপনি যদি একটি হ্যান্ডলার প্রতিনিধিত্ব করতে চান তাহলে এটা একটা পদক্ষেপ বলে যাচ্ছেন. প্রকৃতপক্ষে এই গ্রাফিকাল উপস্থাপনা তারের আপ এবং আপনার কোড এটা আসলে সত্যিই, সহজ. আপনি যদি একটি IBOutlet জোড়া করতে চান, আপনি সব করতে হবে তা হচ্ছে আপনি ক্লিক নিয়ন্ত্রণ, এবং আমরা এই সত্যিই দ্রুত একটি উদাহরণ দেখতে পাবেন. আপনি নিয়ন্ত্রণ করতে ক্লিক করুন যেখানে এটি দেখুন কন্ট্রোলার. আপনি ইন্টারফেসের দিকে টেনে আনতে যাব, অথবা বিপরীতক্রমে করছি, যদি আপনি একটি ইভেন্ট হ্যান্ডলার হুক আপ করতে চান তাহলে আপনি ইন্টারফেস থেকে টেনে নিয়ে যান চলুন অন্যান্য দিক. চলুন সত্যিই একটি সহজ উদাহরণ iOS কটাক্ষপাত করা. যাক এর একটি নতুন প্রকল্প তৈরি. আমি অ্যাপ্লিকেশন আসা এখানে আপ চলেছি, এবং আমি একা দেখুন অ্যাপ্লিকেশন ক্লিক যাচ্ছি. আমি পরবর্তী ক্লিক করুন যাচ্ছি. আমি আমার নামের একটি প্রকল্পের দেব. আমি হ্যালো এটা ফোন করবো. মজার, আপেল অনুমান করা হয়েছে যে আপনি একটা পণ্য তৈরি করছেন যাতে আপনি এটি বিক্রি করে এবং তারা অর্থ উপার্জন করতে পারেন. নিচে এখানে আমি যে এই একটি আইফোন অ্যাপ্লিকেশন বলতে যাচ্ছি. আপনি একটি রহমান অ্যাপ্লিকেশন নির্মাণ, অথবা যদি আপনি ঐ অ্যাপ্লিকেশনের একটি তৈরি করতে চান করতে পারেন যে উভয় ডিভাইস আপনি যে খুব সমর্থন করতে পারেন. এগুলি কি আপনার checkmarks মত হওয়া চাই. আপনি storyboards, যা পরে আমাদের দেখতে পাবেন ব্যবহার করতে চান, এবং আপনি অবশ্যই স্বয়ংক্রিয় রেফারেন্স কাউন্টিং ব্যবহার করতে চান, যা একটা চমৎকার বৈশিষ্ট্য যে malloc এবং বিনামূল্যে বলতে হচ্ছে আপনার কাছ থেকে বাধা দেয়. যতক্ষণ না আপনি যাও malloc এবং বিনামূল্যে কল করতে চান, আমি এই চেক উপরেই ছেড়ে দেন. আমি পরবর্তী ক্লিক করুন এবং পরিশেষে, এই সম্পর্কে জিজ্ঞাসা করা যাচ্ছে যেখানে আমি এটিকে রাখতে চান, সেই করব. আমি তৈরি আঘাত, এবং এখানে আমরা যাবেন. আমি একটি নতুন প্রজেক্ট তৈরি. এখানে বাম ধরে সব ফাইল আমার প্রকল্পের ভিতরে যে, এবং যে আমি একটা আভা আছে বিজ্ঞপ্তি, এবং আমি না, এমনকি কিছু না. IOS মহান. উদাহরণস্বরূপ, এখানে এই ViewController.h, এই আমার প্রথম দৃশ্য নিয়ামক প্রতিনিধিত্ব করতে হয়, তাই আমার অ্যাপ্লিকেশন ভিতর প্রথম পর্দায়. এখন আমরা জানি কি এই বলছে না. আমরা আমি এই বর্গ ViewController করছি কলিং বলছে, এবং একটি ViewController যা একটি UIViewController আছে আছে, এবং এই আবার,, কিছু বর্গ যে আপেল লেখেন যে আমাদের জন্য সুবিধাজনক উপাদান আছে অনেক পর্দা প্রদর্শন করতে. এখানে আসলে আমি যেখানে শুরু সংজ্ঞা কি আমার দেখুন নিয়ামক আছে পারে, এবং এটি সক্রিয় যে সত্যিই আমি এই কোনো প্রয়োজন নেই. এটি boilerplate কোড যে আপেল বিনামূল্যে জন্য সম্পর্কে দেয়. আমি যে প্রথম লাইন দরকার কি, বা আমি একটি বর্গ নেই, তাই আমরা যে পরিত্রাণ পেতে এই পরিত্রাণ পেতে পারেন. ঠিক আছে, তাই এই হল আমার খালি পর্দা. এখন আসুন এই MainStoryboard.storyboard ক্লিক করুন, এবং এই হয় যেখানে এটি আকর্ষণীয় পেতে আরম্ভ করা হয়. আমার এই অ্যাপ্লিকেশন প্রথম পর্দায় উপস্থাপন করে. HTML এ যদি আমি একটি বাটন যুক্ত করতে চান, আমি একটা বাটন ট্যাগ তৈরি ছিল. আপনি একটি বাটন ট্যাগ তৈরি অ্যান্ড্রয়েড ইন আছে, কিন্তু iOS মধ্যে যদি আমি নীচে ডান দিকে নিচে এখানে আসা এবং যদি এই 3 য় একটিতে ক্লিক করুন এখানে আমি যেখানে এটি অবজেক্টস বলেছেন, এবং আমি নিচে, আমি বা স্ক্রল বাটন অনুসন্ধান শুরু করতে পারেন. এবং একটি বাটন চেহারা,, সুতরাং যদি আমি আসলে ড্র্যাগ এবং ড্রপ এই অধিকার আছে, আমি ঠিক করেছি আমার অ্যাপ্লিকেশন এই পর্দায় একটি বাটন যুক্ত. যদি আমি লেখা পরিবর্তন করতে চান, এটা আমি ডবল ক্লিক করতে পারেন, কিছু enticing ভালো বলতে "আমার টিপুন." ঠিক আছে এখন, আমি যদি এই অ্যাপ্লিকেশন চালানো, যাতে আমরা এটা কম্পাইল, তাই এটি চালানোর জন্য আমি উপরের বাম প্লে বোতামটি ক্লিক করুন এবং আমার অ্যাপ্লিকেশন আছে. আমি, কি করবেন না এবং আমি মিষ্টি খুঁজছেন আইফোন অ্যাপ্লিকেশন পেয়েছিলাম. যদি আমি এটিকে থামাতে চান, আপনি স্টপ বাটন ক্লিক করতে পারেন কারণ এটা আরো মজার. চলুন শুরু করা যাক বলতে আসলে আমি যখন আমি এই বোতাম টিপুন এরকম কিছু করতে চান. যে আমি কি কি প্রয়োজন হয় না আমি তৈরি করতে হবে একটি নতুন ইভেন্ট হ্যান্ডলার অথবা একটি কর্ম. তার মানে যে আমি কিছু পদ্ধতি যা আমি করতে চান নামক তৈরি করা প্রয়োজন যখন আমি বাটন টিপুন, তাই আসুন একটি নতুন পদ্ধতি নির্মাণের জন্য. আমি ViewController.h ভিতর আছি. আমি যে পদ্ধতি বিদ্যমান বলা প্রয়োজন. আমি একটি হাইফেন প্রথম প্রয়োজন কারণ আমি দৃশ্য নিয়ামক এই আহ্বান করা যাচ্ছে না. আমি একটি টাইপ দিন প্রয়োজন. এই ধরন যে IBAction জিনিস যে আমরা আগে দেখেছি হবে. এটি একটি হ্যান্ডলার, যাতে এটি একটি IBAction প্রত্যাবর্তন করবে, এবং এই XCode একটি ইঙ্গিতটি যাও যে বলে এই হল কিছু আমি কিছু টেলিগ্রাম করতে চান. আমি এটি একটি নাম দিন buttonPressed, সেমিকোলন মত, করতে পারেন. এখন আমি আমার ক্লাসের ভিতর একটি নতুন মেথড ব্যবহার করেছি. আমি এই পদ্ধতি বিদ্যমান আছে বলেন করেছি. এখন এর মধ্যে ViewController.m আসা যাক, এবং এর যাক কি এই পদ্ধতি কি বলতে পারেন. উদাহরণস্বরূপ যদি আমি শুরু টাইপ,, (অকার্যকর) buttonPressed বিজ্ঞপ্তি XCode সত্যিই চমৎকার এবং সম্পর্কে জন্য autocompletes. এটা সত্যিই বিস্ময়কর. এখানে উল্লেখ্য যে. মি ফাইলের ভিতরে আমি অকার্যকর বলতে পারেন, এবং এই কারণে যে সে আসলে একটি IBAction টাইপ না. এটা আসলে কোথাও এর একটি অকার্যকর হতে সংজ্ঞায়িত হ্যাশট্যাগ, এবং আবার, এটা XCode একটি ইঙ্গিতটি যে আমি এই একটি হ্যান্ডলার যাও হতে চান, এবং আমরা কেন শুধু একটি মধ্যে দ্বিতীয় দেখতে পাবেন. যখন এই বোতাম টেপা না হলে আমি কিছু বিরক্তিকর করতে যাচ্ছি একটি পপআপ প্রদর্শন করতে. যে আমি একটি এই শ্রেণীর নতুন উদাহরণস্বরূপ বলা UIAlertView তৈরি করতে পারেন না, এবং এই একটি বর্গ যে আপেল লিখেছেন যে বিরক্তিকর পপআপ প্রদর্শন করে যাচ্ছে. আমরা এই পপআপ সতর্কতা কল, এবং আমি 2 পদ্ধতি অনুসরণ করতে হবে, এই বস্তু তৈরি যাও, মনে রাখবেন. প্রথম জিনিস আমি যা করতে হবে স্থান বরাদ্দ করা হয়. আমি একটি UIAlertView চান. আমি স্থান বরাদ্দ করা চাই. এটা আমার প্রথম পদ্ধতি. আমার পরের পদ্ধতি আমি এটি আরম্ভ করতে চান, এবং তাই আমি এই বড়, লম্বা পদ্ধতিটিকে বলা initWithTitle আছে. মূলত এর কি এই পপআপ বলেছেন নিয়ন্ত্রণ করা যাচ্ছে. আমার পপআপ শিরোনাম হ্যালো হতে পারেন. এই পপআপ বার্তা "এটি iOS." হতে পারেন প্রতিনিধি জিনিস, আমি কি যে হয় না জানি. এর যাক, এটা কিছু না বলে. এখন যে বাটন প্রদর্শিত হবে এই মত "এটা নিশ্চিত হয়," কিছু বলতে পারেন এবং আমি সত্যিই অন্য কোন বাটন চাই না, তাই এর যে দিন এবং মুছে দিন বন্ধনী বন্ধ. ঠিক আছে, আমি একটি অতিরিক্ত এক নির্মিত. এখন পর্যন্ত আমরা যেতে. এটি কিভাবে আমি একটি নতুন পপআপ তৈরি করতে পারেন. যদি আমি আসলে পপআপ দেখাতে চান তা আমি শো পদ্ধতি কল করতে চান. যে আমি সতর্কতা এবং শো বলতে পারে না, এবং আবার, স্বয়ংসম্পূর্ণ ছিল সুপার চমৎকার. যদি আমি ভুলে গেছি কি ছিল যে, যদি আমি গুলি টাইপ করা, আমি এখানে মাধ্যমে জিনিসটা কি এটা ছিল স্ক্রল করতে পারেন, এবং এটা চমত্কারভাবে ফিল্টার. এখন আমি এই নতুন পপআপ তৈরি. আমরা কি প্রতিনিধি মানে ফিরে আসা পরে দেখব, এবং এখন আমি আমি চাই এই পদ্ধতি বহিস্কার করা বলতে চাই যখন আমি বাটন টিপুন, তাই আমি আমার স্টোরিবোর্ডের ফিরে আসতে যাচ্ছি, এবং আমি এখন এই IBAction জোড়া চান. প্রথম জিনিস আপনি কি করতে চান সেই বাটনটি ক্লিক করুন. আমি যখন এই বোতাম টিপুন আমি এরকম কিছু করতে চান. আমি নিয়ন্ত্রণ কমিয়ে রাখতে যাচ্ছি না. আমি এবং ক্লিক করুন বোতামটি ক্লিক করে টেনে আনুন চলেছি উপর এখানে যেখানে তা দেখুন কন্ট্রোলার বলছেন. আমরা যে চমত্কারভাবে এটি লাইট আপ দেখতে পারেন. আমি যদি দিন আমার মাউস দিয়ে যেতে এখন আমি এখানে উপর এই পপআপ আছে যেখানে আমি কিছু অপশন আছে. এই এক একটি ঘটনা যে আমি রেজিস্টার করতে পারেন. এগুলি যারা পদ্ধতি আমি আমার জ ফাইল হিসাবে IBActions ঘোষণা সব. এটি কিভাবে XCode জানেন কি এই সামান্য তালিকায় প্রদর্শিত হওয়া উচিত, যাতে মাত্র একটি ইঙ্গিত. যদি আমি বোতাম চাপা ক্লিক করুন, এখন আমি হ্যান্ডলার নিবন্ধিত করেছি. আমরা আমি কিছু কোড হ্যান্ডলার নিবন্ধিত আছে বলে জাভাস্ক্রিপ্ট ছিল. এটি Objective-C ইন সত্যিই ছিল যে সহজ. যদি আমি এই আবার চালানোর এখন যখন আমি বাটন টিপুন আমার হ্যান্ডলার ফায়ার যাচ্ছে, এবং আমি এই পপআপ পেতে যাচ্ছি. সুপার সুপার সেখানে সহজ. যদি কখনও যে ঘটনা ঘটতে করা নিবন্ধিত সব দেখতে চাই একটি কম্পোনেন্ট, যদি আমি এই বোতামে ক্লিক করুন এবং আমি আসা ডাইন এখানে উপর প্রথম আপনি এখানে দেখতে পারেন উপর আমি বোতাম ধরণ ভালো জিনিস করতে পারেন, তাই আপনি যদি সেই আমি এর বা অ্যাড যোগাযোগ বোতাম একটি চান তাহলে বা যাই হোক না কেন. যদি আমি এই ঘটনা বাটনের যে সব দেখতে চাই যদি আমি এখানে নিয়ে আসা উপায় ডান দিকে যাও আমরা বিভিন্ন ঘটনা আমি এই ঘটনা সব আছে এখানে দেখতে পারেন. আমি বাটন টিপুন, যখন আমি বোতাম যান, যখন আমি ট্যাপ বা দুবার যা খুশি করতে পারেন, এবং আমি এক নিবন্ধিত হয় এই ইভেন্ট টাচ নামক ইনসাইড আপ, এবং এই বলে যে যত তাড়াতাড়ি হিসাবে আমার আঙুল আসে বোতাম বন্ধ যে ঘটনা অগ্নি যাও, যাচ্ছে এবং যে ঠিক কি ঘটেছে তা ঠিক করা হয়. ডিফল্টরূপে এই বোতাম চাপা ইভেন্ট ধরনের. কোন প্রশ্ন এতদূর? ঠিক আছে, যে কিভাবে আমরা আমাদের কোড টেলিগ্রাম জিনিষ আপ শুরু করতে পারেন আমাদের মধ্যে ইন্টারফেসের ভিতরে জিনিষ. মনে রাখুন প্রথম জিনিস আমরা কি ছিল কোড খুঁজে বের করতে, এবং তারপর আমরা তারযুক্ত কোড ইন্টারফেস আপ, এবং আমাদের প্রথম অ্যাপ্লিকেশন আছে. ঠিক আছে, যে ছিল সত্যিই শান্ত, এবং আমরা এই বোতাম তৈরি. যাও যাও বৈশিষ্ট্য একটি গুচ্ছ তৈরি আছে কি যদি আমরা না করতে চান এই বোতাম প্রতিনিধিত্বমূলক? Tic Tac Toe উদাহরণস্বরূপ, আমি 9 বাটন আছে, এবং এটি সুপার, সুপার যাও ড্র্যাগ এবং ড্রপ 9 বার আছে বিরক্তিকর হতে চাই অথবা আমি যদি 81 সঙ্গে Tic Tac Toe পরিবর্তে 9 করা হয়েছে এবং আমি ড্র্যাগ এবং ড্রপ 81 বার দেখা হয়েছে, এবং যে পঙ্গু. অনেক ভালো একটি HTML কি আমরা করতে পারি পরিবর্তে হয় যখন আমরা ID-র নাম সমূহ এবং অন্যান্য বিষয়ে ছিল এবং আমরা জিনিস জন্য অনুসন্ধান করতে পারেন তাদের আইডি দ্বারা, একটি iOS একই ধারণা নামক ট্যাগ আছে. ট্যাগটি কেবল একটি অনন্য একটি কম্পোনেন্ট জন্য সংখ্যাগত আইডেন্টিফায়ার. যদি আমি এই 0 এর একটি ট্যাগ আছে, যেমন, যদি আমি একটি বাটন তৈরি এবং এটি 0 একটি ট্যাগ দিতে, এবং আমরা কিভাবে শুধুমাত্র একটি দ্বিতীয় মধ্যে কি সেটা দেখতে পাবেন, যদি আমি যে বাটন পেতে চান আমি সহজভাবে বলতে পারে আমি কল করতে চান বস্তুর উপর এখানে উপর পদ্ধতি viewWithTag, self.view, উদাহরণ স্বরূপ, যা বর্তমান পর্দায় উপস্থাপন,. যদি আমি যে পদ্ধতি viewWithTag কল, আমি ট্যাগ 0 সাথে বৈঠাচালনা বোতাম ফিরে যাচ্ছি. চলুন এই সময়ে একটি বিল্ডিং Tic Tac Toe দ্বারা কটাক্ষপাত. প্রথমত, এই হল আমার স্টোরিবোর্ডের. আমি এই 10 UI 'বোতাম তৈরি করে. উল্লেখ্য, তারা সব একই মাপের. যদি আমি এই এক এবং আমি এখানে ক্লিক করুন উপর ফিরে আসবে এই ডান পাশের আপনি আমি ফন্ট স্থায়ী ডান এখানে, তাই আমি ফন্ট তৈরি একটি অল্প বড় দেখতে পাবেন, কিন্তু কি আমি কি ছিল আমি এই ট্যাগটি সেট. আমি আগেই বলেছি যে এই 1 একটি ট্যাগ আছে, এবং যে উপরের বাম. এখন, আমি যদি অন্য বাটন ক্লিক করুন, যেমন এই দ্বিতীয় এখানে এক, এখন আপনি যে আমার ট্যাগটি 2 দেখতে পাবেন. এই বোতাম প্রত্যেকটি শুধু একটি অনন্য ট্যাগ আছে, এবং তাই পরে এই কি হয় আমি ইন্ট্যার্যাক্ট শুরু চলেছি সঙ্গে আমার অ্যাপ্লিকেশন. এটি একটি দৃশ্যে নিয়ামক সব ভিতর, কিন্তু এখানে কি আমরা আছে. আমরা 3 বৈশিষ্ট্য এখানে আছে. প্রথম এবং শেষ এক যাও আমার বোর্ড রাষ্ট্র প্রতিনিধিত্ব করতে হয়. মূলত এই প্রথম এক একটি অ্যারের প্রতিনিধিত্বমূলক যেখানে Xs এবং Os হয়. অন্য এক এখানে আমাদেরকে বলে, যার পালা এটা. আপনি যে আমি এইসব জিনিস আছে এখানে বিজ্ঞপ্তি পাবেন. আগে যখন আমরা বৈশিষ্ট্য ঘোষণা দিয়েছেন আমরা একটি নাম এবং একটি টাইপ তাদের. আমরা তাদের কিছু অতিরিক্ত তথ্য এখানে দিতে পারেন. এই প্রথম বলেছেন nonatomic, এবং এই কি বলছেন হয় মূলত শুধুমাত্র এক জিনিস কখনও একটি সময়ে এই পরিবর্তনশীল অ্যাক্সেস করার চেষ্টা করা হবে. আপনি আরো জটিল অ্যাপ্লিকেশন যা মাল্টিথ্রেডেড যেত না, ভূত মধ্যে এবং তাই আমরা ভিন্ন থ্রেড ছিল, এবং বিভিন্ন sprites একই সময়ে বিভিন্ন বিষয় হতে পারে না. যদি এই ক্ষেত্রে, তা কিছু যে আমরা এ পাবেন খুঁজছেন করা হয় না না, যদি আমরা বলতে nonatomic প্রকৃতপক্ষে এটি একটি জিনিষ একটু দ্রুত করতে যাচ্ছে. আমরা এই জিনিস বলা ধার্য করুন, বলিষ্ঠ, অথবা দুর্বল আছে. এই দায়িত্ব অর্পণ করা ঠিক বলছেন যে এই একটি সাধারণ ধরন. কারণ এই মাত্র একটি bool একটি অবজেক্ট অথবা পয়েন্টার না, তাই bool Objective-C মধ্যে নির্মিত হয়. এই বলে কি কিছু পয়েন্টার এখানে দিয়ে অভিনব না করার চেষ্টা করবেন না. এটি একটি নিয়মিত পুরানো scaler. Strong এবং দুর্বল, এই দুর্বল বলছেন যে আসলে আমি চাই এই দৃশ্য নিয়ামক কিছু যাও যাও প্রতি নির্দেশ করা হবে. আমি আসলে বরাদ্দ করা যাচ্ছে না অথবা init নিজেকে এই. ইন্টারফেস রচয়িতা, যখন আমি অ্যাপ্লিকেশন চালানোর জন্য, যে সকল আরম্ভের হ্যান্ডেল করতে যাচ্ছে. যদি আমি বলতে দুর্বল, যে কাউকে এই তৈরি করা হবে. যদি আমি বলে দৃঢ়, এই বলে যে আমি একজন হতে যাচ্ছি যে এই বোর্ডটি অবজেক্ট এর তৈরি, এবং এখানে আমি আরো কিছু পদ্ধতি আছে এখানে, উদাহরণস্বরূপ, যখন নতুন খেলা বাটন টেপা হলে জন্য একটি কর্ম, যখন অন্য কোনো বোতাম টেপা জন্য একটি কর্ম, এবং ইত্যাদি ইত্যাদি. আমরা Tic Tac Toe এর যুক্তি খুব বেশী করে পাওয়া হবে না, যদিও খুব উত্তেজনাপূর্ণ, কিন্তু এর যাক কটাক্ষপাত করা যে আমরা iOS ভিতর করতে পারেন. এই নতুন খেলার পদ্ধতি বহিস্কার করা যাচ্ছে যখনই আমি নতুন খেলা বাটন টিপুন. যে পর্যন্ত আমি কেবল আমার স্টোরিবোর্ডের মাধ্যমে আসা হুক. আমি নতুন খেলার উপর ক্লিক করা. যদি আমি আসা অধিকার উপর আমি যে এখানে দেখতে পারেন NewGame পদ্ধতি তারযুক্ত হয় ইনসাইড আপ করুন. এটা কেন এই বহিস্কার পেতে যাচ্ছে. newGame পদ্ধতি কিছু সেট আপ করতে হবে. এটা আমি কি প্লেনে অবস্থায় সাফ করতে চান বলে যাচ্ছে. এটি একটি চপল অ্যারে উপর চমৎকার পদ্ধতি. এর ফলে এটি এখন এর এক্স এর পালা বলতে হবে, এবং এখন আমি এই viewWithTag জিনিস সুবিধা গ্রহণ করতে যাচ্ছি. আমি জানি যে আমার বোতাম আছে 1-9 ট্যাগ, এবং যা কিছু আমি ইচ্ছামত বাছাই করা. যদি আমি প্রতিটি বোতাম পাঠ্যের খালি করা সেট করতে চান কারণ আমি একটি নতুন খেলা শুরু এবং আমি কোনো চাই না Xs বা OS বাকি করা উপর আমি এই করতে পারি. আমি আমি ট্যাগ দিয়ে দেখুন, 1, 2, 3, 4 ইত্যাদি ইত্যাদি করতে চান না. এই প্রতিটি সময় একটি ভিন্ন বোতাম উন্মুলিত করা হবে. এখানে আমি তা নিক্ষেপ UIButton যাচ্ছি. শুধু ভালো আমরা ints floats এবং তদ্বিপরীত যাও নিক্ষেপ করতে পারে এই বলে যে আমি একটা UIButton এই নিক্ষেপ করতে চান. তার মানে এই ধরনের একটি UIButton * হবে কারণ পয়েন্টার, তবে চিন্তা করবেন না, তারা আর ভয়ের করছি না. আমি একবার এই বোতাম আমি এটা একটি পদ্ধতি কল চলেছি আছে. এই পদ্ধতি setTitle forState বলা হয়, এবং তাই এই বলছেন আমি বোতাম পাঠ্যের খালি স্ট্রিং সেট করতে চান, এবং আমি এটি খালি স্ট্রিং যখন এটি চাপা না হতে চান. যদি আমি এই পদ্ধতি ব্যবহার করছি, আমি বোতাম টেক্সট পরিবর্তন করতে পারেন যত তাড়াতাড়ি কেউ এটি হিট, কিন্তু আমরা যখন মাত্র বোতাম বসা হয় সেখানে বলতে চাই আমি টেক্সট ফাঁকা হতে চান. পরিশেষে, আমরা যাও আমার বোর্ড আরম্ভ চলুন, এবং আমি যে 0 এ সবকিছু বর্তমানে বলতে যাচ্ছি, তাই এই বোর্ডের সদস্য অপরিবর্তনীয় একটি চপল অ্যারে, যার মানে আমি addObject পদ্ধতি এবং শুধুমাত্র একটি এটি 0 ভিতরে কল করতে পারেন. এটা কি আমি যখন একটি নতুন গেম তৈরি. যাক এর অন্য একটি কটাক্ষপাত করা. এখানে এই পদ্ধতি IBAction করা যে চাপা যাও যাচ্ছে প্রত্যেক সময় যারা স্কোয়ার এক টেপা না. এখন আমরা এখানে কিছু Tic Tac Toe যুক্তিবিজ্ঞান. আমরা চিত্র আউট যার পালা এটা, এবং উপর ভিত্তি হয় আমরা একটি X অথবা একটি হে সেট, কিন্তু আমরা লক্ষ্য করা যে আমরা এই একই হ্যান্ডলার পুনঃব্যবহার করছি জন্য প্রতি যারা বোতাম একক এক. তার মানে যে আমি উপরের বাম বাটন জন্য একটি পদ্ধতি আছে, না, একটি পৃষ্ঠার নীচের অংশে ডান বাটন জন্য বিভিন্ন পদ্ধতি, যদিও আমি কাজ আছে যা পারে. যে সত্যিই ভাল নকশা হবে না. আমি এখানে কি করছি আমি আসলে করছি নির্ধারণ করা যাচ্ছে কি যে বাটন টেপা হয়েছে ট্যাগ. আপনি লক্ষ্য করা যে এই খেলার পদ্ধতি এক যুক্তি লাগে. এটি প্রেরকের বলা হয়, এবং এর কি প্রেরক প্রেরককে হয় যাও যাচ্ছে ঠিক কি হয়েছিল উপর ব্যবস্থা গ্রহণ করা হয়. যদি আমি একটি বাটন টিপুন, এই যে প্রেরক UIButton হবে আসলে আমি চাপা, যাতে এর মানে হল যে UIButton একটি ট্যাগ থাকে কারণ আমি একটি ট্যাগ তৈরি. যদি আমি এ ট্যাগ পেতে চান আমি সহজভাবে বলতে পারেন আমি প্রেরক ও ট্যাগ করতে চান, এবং আবার, আমি একটি UIButton করেছি এটি casted. আমি যে প্রেরক একটি UIButton হবে জানি এরকম. এটি একটি UIButton করা আছে সবসময় না. আমি যেমন, একই হ্যান্ডলার রেজিস্টার পারে  জন্য একটি বাটন, একটি স্লাইডার জন্য এক জন্য এক. এই ক্ষেত্রে, আমি জানি তারা সব বোতাম, তাই আমি বলতে যাচ্ছি আমি এই একটি বাটন হতে চান, এবং তারপর আমি ট্যাগ পেতে পারেন, এবং ট্যাগ থেকে এখন আমি জানি যেখানে আমি বোর্ড ভিতরে am. তারপর আমি সহজভাবে হয় এক্স অথবা O, ঘুরে টুসকি পারেন সেট করতে পারেন, চেক যারা, ইত্যাদি ইত্যাদি জিতেছে. এই এতদূর উপর কোন প্রশ্ন? ঠিক আছে, সব কোড আমরা অনলাইন পোস্ট 'আমরা খুব করে পেতে না চান এর Tic Tac Toe যুক্তিবিজ্ঞান, কিন্তু এখন আপনি যে সত্যিই দেখতে পারেন সমস্ত আমরা করছেন হয় আমরা এই অ্যারে উপর looping করছি, তাই আমরা loops জন্য এখানে একটি দম্পতি আছে, এবং আমরা শুধুমাত্র আপনার দেখতে তুলনা আমরা সব সারি, কলাম বা কিছু একটা যে ভালো মধ্যে একটি খেলার মধ্যে একটি মিল আছে. প্রকৃতপক্ষে এই অ্যাপ্লিকেশন চালানো যদি আমি এই বাটনগুলির এক টোকা যে খেলার পদ্ধতি বহিস্কার করা হয়, যাতে এর মানে আমি ঠিক সেট একটি বাটন এক্স হতে পারে তাই, এখন এই বোতাম একটি হে, এবং তাই করা হবে, এবং যাতে কিভাবে আমরা এই একক পাতা অ্যাপ্লিকেশন সাথে যোগাযোগ করার জন্য শুরু করছেন. আমরা কোড পোষ্ট করব, যাতে যে পড়া মুক্ত মনে, কিন্তু আমি কি এখন কিছু অ্যাপস যে শুধু একটা পাতা তুলনায় আরো সম্পর্কে কথা বলুন. Tic Tac Toe হিসাবে হিসাবে উত্তেজনাপূর্ণ ছিল iOS ভিতর, একটি অ্যাপ্লিকেশনের অনেক একাধিক পর্দা সঙ্গে জিনিষ নিচে এই ধরনের ড্রিল. প্রথম ধারণা যে আমরা যে বিষয়ে কথা বলার প্রয়োজন হবে হয় প্রোটোকল, এবং একটি প্রোটোকল কেবলমাত্র পদ্ধতি একটি সেট যে আপনি সংজ্ঞায়িত প্রতিশ্রুতি দিতে. যদি আমি এই পদ্ধতি 2 সঙ্গে নতুন প্রোটোকল, এই প্রথম একটি নির্মাণ, যদি রিটার্ন টাইপ অকার্যকর হয়, আমি এটা বলা foo বিন্যাস. এটা কোন যুক্তি লাগে. আমি অন্য একটি পদ্ধতি আছে. এটা কোন int ফেরৎ. আমি এটা বার বলা, এবং এটি একটি যুক্তি লাগে. সমস্ত এই প্রোটোকল হল SomeProtocol এর নামে এখানে, এই হল যে কেউ একটি সেট বাস্তবায়ন করতে পারে. আমি কি foo বিন্যাস আছে বলেন, এই প্রোটোকলের ভিতরে নি. পরিবর্তে, শুধু বলেই করছি আপনি foo বিন্যাস নির্ধারণ করুন যদি আপনি চান পারে. যদি আমি একটি নিয়ামক তৈরি করছি অথবা একটি বর্গ তৈরি আমি ভিতরে তজ্জাতীয় প্রতিশ্রুতি বাস্তবায়ন করতে পারেন কিছু এই পদ্ধতি ব্যবহার করা, যাতে উদাহরণস্বরূপ, যদি বলতে এই এখন বলছেন আমি আপনার নিকট প্রতিশ্রুতি তৈরীর যে ভিতরে এই দেখুন নিয়ামক শ্রেণীর আমি foo বিন্যাস এবং উভয় দণ্ড জন্য সংজ্ঞা থাকবে. কেন যে দরকারী? IOS ভেতরে উপাদান অনেক এই সুবিধা গ্রহণ নকশা প্যাটার্ন প্রতিনিধিদল বলা হয়, এবং কি প্রতিনিধিদল বলছেন হয় যে, উদাহরণস্বরূপ, যদি আমি একটি টেক্সট বক্স আছে এবং কিছু কিছু ঘটনা যে আমার টেক্সট বক্সের ভিতরে যায়নি নিবন্ধিত আছে, বরং পৃথক ঘটনা কি আমি কি করতে পারি তৈরি হয় আমি বলতে পারেন এই টেক্সট বক্সের প্রতিনিধি কিছু বস্তু হবে. আমি যখন বলছে এটি এখন একটি প্রতিনিধি তার মানে যখনই কিছু ইভেন্ট টেক্সট বক্সের মধ্যে থাকবে বহিস্কার করা হয়েছে বদলে যাও বা এটি যে ভালো কিছু রেজিস্টার হচ্ছে এটা এর প্রতিনিধি যাও একটি পদ্ধতি কল যাচ্ছে. উদাহরণস্বরূপ আমার টেক্সট বক্সের ভিতরে, আমি যখন আমি টিপুন জন্য একটি পদ্ধতি আছে, যে নীচের অংশে ডানদিকে অবস্থিত বাটন কাজ, এবং তাই বদলে হ্যান্ডলার আমি কি বলতে পারেন নিবন্ধনের হয় টেক্সট বক্সের এখানে, একটি বস্তুর যে আমি আপনাকে একটি পদ্ধতি কল করতে চান প্রত্যেক সময় কেউ সম্পন্ন বোতাম presses, এবং তার মানে তাদের যে বস্তুর কিছু প্রটোকল বাস্তবায়ন হয়েছে যে আমি যে কাজ বোতাম কর্ম নির্ধারণ করুন অঙ্গীকার, কারণ যদি এটি সংজ্ঞায়িত না করে এবং যে পদ্ধতি আপনার সম্পন্ন চাপুন, তারপর এটা বিভ্রান্তিকর হতে যাচ্ছে. যাক এর একটি উদাহরণ কটাক্ষপাত করা. এখানে আমি কেবল একটি টেক্সট বক্স আছে, এবং এই টেক্সট বক্সে, বৈশিষ্ট্য এই ডান পাশের এখানে উপর এক প্রতিনিধি. এই শ্রেণীর একটি সম্পত্তি. আমি কি এখানে কি হল আমি নিয়ন্ত্রণ ক্লিক করেন, এবং এই স্পট থেকে আমি এখানে উপর টেনেছেন দৃশ্য নিয়ামক, এবং যে এখন এই টেক্সট বক্সের প্রতিনিধি দৃশ্য নিয়ামক হবে. তার মানে যখন কিছু কর্ম ঘটতে বদলে নিবন্ধনের পৃথক ইভেন্ট হ্যান্ডলার আমি আপনাকে প্রতিনিধি প্রেরণ করতে ইচ্ছুক. এখন আমি কি আমার দেখুন নিয়ামক কটাক্ষপাত করা. সারাংশ. জ ফাইল ভিতরে আমি একটি অঙ্গীকার করেছি. আমি এই প্রোটোকল ভিতরে কিছু পদ্ধতি বাস্তবায়নের অঙ্গীকার করেছি বলা UITextFieldDelegate, এবং আবার, এই মাত্র কিছু জিনিস আছে যা আমি প্রয়োগ করা চয়ন করতে পারেন তালিকা. যদি আমি আমার. মি ফাইলে এখানে আসা, আমি এক ধরনের পদ্ধতি প্রয়োগ করা আছে. আমি এটি textFieldShouldReturn নামক করেছি কারণ যে কি তা প্রোটোকল ভিতর বলা ছিল. এবং এখন আমি যখনই কাজ যে টেক্সট ক্ষেত্রের বোতাম টিপুন ভিতরে এই কি শুরু বলা যাও যাচ্ছে, তাই আমি একটি হ্যান্ডলার রেজিস্টার কি না. আমি প্রতিনিধি ছিলেন, এবং যখনই এই ইভেন্ট বহিস্কার করা হয় এই পদ্ধতিতে যে বলা হবে, তাই যদি আমি আমার আসা স্টোরিবোর্ডের এখানে উপর এবং এটি চালানোর- যখন যে লোড এর আমরা কি এই আছে দেখতে পারেন. আমার পর্দায় আমি 2 জিনিষ আছে. আমি এই টেক্সট ক্ষেত্রের আছে, এবং আমি এই লেবেল আছে. আমি কেবল করছি বলছে আমি এই লেবেলের টেক্সট চান সমান যাই হোক না কেন ব্যবহারকারী টেক্সট ক্ষেত্রের ভিতরে টাইপ করা. এই পরবর্তী এখানে লাইন কেবল একটি পদ্ধতি যে আমি আহ্বান করছি টেক্সট ক্ষেত্রের যে আমি আপনি কীবোর্ড যাও লুকাতে চান. এই পদ্ধতি শুধুমাত্র নির্বিচারে যে আপেল না. আবার, আগে আমি কিছু আমি সবকিছু আপ তারের ছিল কি তাই, আমি প্রথম এখানে এসেছেন উপর. দেখুন নিয়ামক থেকে আমি টেক্সট বক্সের উপর টেনে আনুন. আমি যাক, যেতে হবে এবং আমি এখানে দেখতে পারেন যে আমি এই টেক্সট ক্ষেত্রের সম্পত্তি করতে পারেন দেখুন নিয়ামক সালে এখানে যেহেতু আমি একটি সম্পত্তি সংজ্ঞায়িত করেছি যে একটি টেক্সট ক্ষেত্রের মধ্যে একটি IBOutlet. এই বলে যে আমি এই সম্পত্তি তারের আপ করতে পারেন একটি টেক্সট ক্ষেত্রের মধ্যে আমার UI 'তে. এখন যখন আমি এই ক্লিক আমি টাইপ করা শুরু করতে পারেন. এখন যদি আমি কাজ বাটন ক্লিক করুন এই ফায়ার যাচ্ছে একটি ইভেন্ট যে এখন আমি উত্তর দিতে পারেন. কোনো ইভেন্ট হ্যান্ডলার. এটা কিভাবে আমি কাজ যা বাটন প্রতিক্রিয়া. জানার জন্য? এই যে, আপনি কি কখনও নিজেকে খুঁজে পেতে নাও হতে পারে একটি নকশা প্যাটার্ন না আপনার নিজের তৈরি করা প্রোটোকল, কিন্তু শুধু জানতে পারি যে কয়েকটা বিভিন্ন iOS উপাদান বিভিন্ন ঘটনা রেজিস্টার. উদাহরণ হিসাবে বোতামগুলি জন্য, যারা IBActions ব্যবহার. অন্যদিকে শিরোনাম ক্ষেত্র,, যাও প্রতিনিধিদের ব্যবহার করতে যাচ্ছি. আমরা আপনাকে এবং যে নথিপত্র আপ ভিতর সব চেহারা দেখতে পারেন. যাইহোক, এর আসলে সেখানে পণ্যদ্রব্য UI 'তে একটি টন আপনি iOS জন্য অন্তর্নিহীত, যাতে, উদাহরণস্বরূপ, আমি পথ তৈরি নিচের ডানদিকে সম্পন্ন বলবার হয় আমি এই টেক্সট ক্ষেত্রের নির্বাচিত. আমি এখানে এসেছিলেন উপর. আমি scrolled একটু নিচে কী ফিরে, এবং আসলে আমি এই জন্য একটি জিনিষ আভা, মত যদি আমি চাই যে বলতে পারেন ইমার্জেন্সি কল পরিবর্তে আমি যে কি, যা হচ্ছে, তা সম্পূর্ণই র্যান্ডম করতে পারেন, এবং আমি কেন একটি অন্তর্নির্মিত জরুরী কল বোতাম আছে না, কিন্তু আছে, এটি সত্যিই ছোট করে জরুরি কল. এখন পর্যন্ত আপনি যান. নিশ্চিতভাবে এইসব iOS বিভিন্ন করা সমস্ত বিকল্পগুলির মান অন্বেষণ. প্রতিনিধিদের উপর কোন প্রশ্ন? আবার, শুধু একটি আকর্ষণীয় ডিজাইন প্যাটার্ন যে আপনি সচেতন হওয়া উচিত. ঠিক আছে, এর পরের দিন টেবিল দৃশ্য অবলোকন করা. একটি টেবিল ভিউ মূলত আইটেম তালিকা যে সব iOS মধ্যে জায়গা জুড়ে যে হয়. আপনি যখন আপনার পরিচিতির মাধ্যমে সব আলোকসম্পাতের করছি, আপনি এ খুঁজছেন সেটিং পাতা, এবং জিনিস তালিকার যে ধরনের একটি টেবিল ভিউ বলা হয়. একটি iOS মধ্যে টেবিল ভিউ প্রবর্তনকারী বেশ সহজ. পরিবর্তে একটি বর্গ যে UIViewController থেকে যে descends তৈরীর ভালো আমরা আগে আমরা সহজভাবে বরং বলা প্রয়োজন সম্পন্ন করেছি সবকিছু একটি UIViewController আমি না করে যেতে চাই, আমি সবকিছু একটি UITableViewController আমি যেতে চাই না বলে, যাতে কেবল অতিরিক্ত কিছু জিনিস আছে যা আমাদের জন্য সম্পূর্ণ সম্পন্ন করে যোগ করা হয়. আমরা মূলত টেবিল ভিতরে ঐ খালি স্থান পূরণ করতে হবে খুব সামান্য. যাতে একটি টেবিল আমি কিছু প্রশ্নের উত্তর দিতে হবে প্রদর্শন. প্রথম প্রশ্ন আমি উত্তর প্রয়োজন হয় টেবিলের মধ্যে কতগুলি বিভাগ? আপনি যখন আপনার যোগাযোগ অ্যাপ্লিকেশন মাধ্যমে আলোকসম্পাতের করছেন আপনি যে ধরনের বিজ্ঞপ্তি পাবেন যেহেতু দ্বারা সংগঠিত থাকে, তাহলে আপনি Bs আছে, এবং আপনি যে সামান্য সাব হেডারের আছে. যারা প্রত্যেকটি একটি অধ্যায় বলা হয়. আপনি এই না করার প্রয়োজন হতে পারে বা নাও থাকতে পারে. সর্বপ্রথম যে জিনিসটি আপনাকে একটি পদ্ধতি বাস্তবায়ন বলা tableView: numberOfSectionsInTableView. যে সহজভাবে ফেরৎ কতগুলি বিভাগে আপনার আছে, তাই এই এক যদি আপনি এক বড় টেবিল ভিউ আছে ফিরে বলতে পারে. পরের প্রশ্ন যে iOS জানা প্রয়োজন কত সারি আছে? উদাহরণস্বরূপ, আপনি একটি টেবিল ভিউ মাধ্যমে আলোকসম্পাতের করছি. আপনি একটি নির্দিষ্ট সংখ্যক গান আপনি খুঁজছেন অথবা একটি যোগাযোগ নির্দিষ্ট নম্বর আছে. যদি আপনি এ সম্পর্কে,, অনেক না যে, এবং যাতে কিভাবে iOS জানেন কিভাবে বহু কোষের প্রদর্শন. আবার, এই ফেরত 3 ভালো কিছু বলতে পারে. আমার টেবিল ভিউ 3 সারি আছে. অবশেষে, iOS কি প্রতিটি কোষের মত দেখাচ্ছে জেনে রাখা দরকার, তাই এটি কি আসলে এর যাচ্ছে না হয় এই পদ্ধতি নিচে এখানে ফোন, এই tableView: cellForRowAtIndexPath. এটা আপনার প্রত্যেক টেবিলের ভিতর একক সেল এই পদ্ধতি কল যাচ্ছে. এটা জানি কতবার তা কল? হ্যাঁ, আপনি বিভাগে সারি সংখ্যা ভিতরে কিছু বলেছিলেন. আমরা আমাদের ঘর প্রতিটি এই কল চলুন, এবং এই ভেতরে হয় যেখানে আপনি আসলে জিনিস ভালো করতে পারেন টেক্সট বা সেট আপনি কি যে সামান্য ডান দিকে নীল বাটন আছে বলুন. এই কোষ পাবার জন্য প্যাটার্ন, আমরা এই পদ্ধতি ব্যবহার করতে যাচ্ছেন বলা dequeueReusableCellWithIdentifier. Objective-C হয় আসলে তাদের পদ্ধতি নামের হাস্যকর দ্বারা জন্য খুব ভালোভাবে পরিচিত, এবং এই সত্যিই একটি বিন্দু যেমন চমৎকার কেস. এই পদ্ধতি কি ঠিক আছে এই বলে আমি আপনাকে একটি কক্ষ সম্পর্কে দিতে চান. শুধু একটি iOS জিনিস. আপনি যদি আপনার আইপড 100,000 গান মত কিছু আছে কি iOS যাও করতে না চায় হল 100,000 কোষ বরাদ্দ করা, কারণ যদি আপনি আপনার তালিকার শীর্ষে থাকেন, সত্যিই আপনি কি মেমরি বরাদ্দ করা প্রয়োজন ঘরের জন্য যে 99.000 নিচে সারি? না, কারণ হিসাবে আপনি প্রদর্শনের করছি আপনি হিসাবে আপনি বরাবর বরাদ্দ করা যেতে ধরনের পারেন. এটা আপনার জন্য এটা করা হয়. আপনি যে সব মূঢ় কর্মক্ষমতা স্টাফ চিন্তা করতে হবে না. সমস্ত আপনি বলতে হয় আপনি এই পদ্ধতি dequeueReusableCellWithIdentifier কল, এবং এই বলে, ঠিক আছে, যদি আপনাকে আমি আপনার জন্য একটি নতুন কোষ তৈরি করতে হবে. তবে আপনি যদি টেবিলের নীচে হন এবং আপনার আগে থেকেই কিছু কক্ষ বরাদ্দ করেছি এ টেবিল উপরের যে সত্যিই আপনি যে কোনো সময় যে খুব শীঘ্রই প্রয়োজন করছি যাচ্ছে না আমি আপনাকে এর পরিবর্তে একটি নতুন বণ্টন ফিরে সেই দিন চলেছি, এবং তাই এই একটি চমৎকার পারফরম্যান্স উদ্বেগ. আপনি নিজের ঘর বরাদ্দ করা হবে না. যে আপনাকে ফেরত দিতে একটি কোষ যাচ্ছে. এটি আপনার একটি কোষ বস্তুর ফিরে যাচ্ছে. আপনি একবার ঘরের অবজেক্ট আপনি এটা করতে পারেন উপাদান আছে. আপনি এই সম্পত্তি নামক টেক্সট লেবেল সহ ঘরের টেক্সট সেট করতে পারেন. আপনি ডান বা অন্য কিছু র্যান্ডম স্টাফের উপর যে তীর যুক্ত করতে পারেন এই অন্যান্য সম্পত্তি সাথে ডাকা accessoryType, এবং তাই এবং তাই. চলুন আসলে একটি টেবিল ভিউ এখন রূপায়ণকারী কটাক্ষপাত করা. যখন আমি এই প্রজেক্ট তৈরী বরং একক দেখুন আবেদন বলছে আসলে আমি এখানে এসেছিলেন উপর মাস্টার-বিস্তারিত আবেদন, যাতে এবং মূলত এই মেইল ​​অ্যাপ্লিকেশন অনুরূপ বাম টেবিলের উপর দেখুন এবং তারপর ডান বিষয়বস্তু সঙ্গে রহমান. আইপড বা আইফোনের এই একটি টেবিল ভিউ থেকে মিলা যাচ্ছে. যে যেখানে আমি আমার স্টার্টার কোড পেয়েছিলাম. যাক এর প্রথম স্টোরিবোর্ডের কটাক্ষপাত করা. এই সব আমার জন্য, কাজ মূলত তৈরি হয়. এই ন্যাভিগেশন বারের সম্পর্কে দেখিয়েছি কি একটি উদাহরণ ঘরের মত মনে হত, এবং আমি এই ডবল ক্লিক করুন, এর শিরোনাম পরিবর্তন করতে পারেন. অন্য কোন উদ্বেগ 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 উপর র্যান্ডম বিন্দু. আপনি যদি তথ্য সঞ্চয় করতে চান এই জিনিস বলা কোর তথ্য আছে, যা আসলে সঙ্গে কাজ জটিল ধরনের. এছাড়াও আপনি এসকিউএল যাও তথ্য সঞ্চয় ব্যবহার করতে পারেন, যা আবার,, আরো জটিল দিকে থাকে কিন্তু চমৎকার ধরনের সঙ্গে কাজ করতে, কিন্তু এই সমর্থন iOS সত্যিই শীতল বলা সম্পত্তির তালিকা জিনিষ, সম্পত্তি এবং একটি তালিকা শুধুমাত্র একটি ফাইল যে কী মান জোড়া প্রতিনিধিত্ব করে. আপনি কি 'র তালিকা, সংজ্ঞায়িত এবং আপনি যা বলছেন তা এই কি দ্বারা একটি অ্যারের হবে. এই কি দ্বারা একটি পংক্তি নির্মিত হবে, এবং হয় মূলত কিছু আপনি করতে পারেন JSON আপনাকে একটি সম্পত্তি তালিকা ভিতর করতে পারেন, এবং তাই এই আমাদের কিছু তথ্য এর সাথে কাজ করা সত্যিই চমত্কার করতে পারবেন. উদাহরণস্বরূপ, আমি এই Teams.plist যে আমি তৈরি আছে. আমি একটি নতুন ফাইল তৈরি plist, এবং আমি নিচে কসরত করতে পারেন. এটি একটি অভিধান, এই একটি অভিধান, এই পংক্তি, এবং তাই এই একটি চমৎকার একটি JSON ডকুমেন্টের গ্রাফিকাল উপস্থাপনা বা ঠিক কী মান জোড়া একটি সেট, এবং তাই এই তথ্য যে আমি আমার অ্যাপ্লিকেশন ভিতর দিয়ে কাজ হবে. যাক এর উপর প্রথম এখানে আসা. আমরা এখন অনেক বেশি ফাইল আছে. কিন্তু যাক এর প্রথম স্টোরিবোর্ডের আসা এখানে বেশী. স্টোরিবোর্ডের এখানে যদি আমি জুম আউট করতে পারেন- আমরা এখন দেখতে পাবেন যে, এই হল আমার অ্যাপ্লিকেশন প্রবাহ. আমি প্রথম করছি এই পর্দায় শুরু হতে চলেছে. আমি এই পর্দায় নিচে কসরত চলেছি, এবং আমি এই পর্দায় নিচে কসরত যাচ্ছে, এবং না আমরা এখানে দেখতে পারেন যে যদি আমি ধরনের আর এইসব প্রায় আমরা এই তীর থেকে এখানে এখানে আছে যাচ্ছে সরাতে, এবং আমি যে ভাবে সংজ্ঞায়িত তীর ছিল যদি আমি কিছুক্ষন জুম, এবং যদি আমি এই দৃশ্য নিয়ামক আসতে উপর, এবং এখানে একটা কোষ, এবং আমি বলতে চাই যে যখন আপনি একটি কোষ টোকা আমি আপনাকে অন্য পর্দা যাও যাও উপর স্লাইড চান. আমি সহজভাবে রাখা নিয়ন্ত্রণ বাড়তেও পারে, একটি সামান্য বিট উপর স্ক্রল, নিয়ন্ত্রণ কমিয়ে রাখতে, এই কক্ষের উপর টেনে আনুন এবং চলুন. এবং আমরা এখানে উপর বলতে কি আপনি যে রূপান্তরটি করতে ব্যবহার করতে চান? আপনি কি যে জিনিস যে ধাক্কা নামক স্লাইড এর ব্যবহার করতে চান? আপনি কি নিচ থেকে স্লাইড উপরে করতে চান? যে মোডাল নামে এর. এবং আমি একবার এই এক ক্লিক করুন, এটা আমার জন্য এই তীর আঁকা যাচ্ছে, এবং তার মানে তাদের আসলে আমি নাড়াচাড়া করেছি কি আমি যখন এই বোতাম graphically টিপুন. আমি আসলে এক পর্দা থেকে পরবর্তী এক স্লাইড কোনো কোড বার লিখুন না. আমি সংজ্ঞায়িত এই চাক্ষুষরূপে ইন্টারফেস নির্মাতা ভেতরে. যদি আমি এই তীর ক্লিক করুন, আমরা যে আমি দিয়েছিলেন একটি নামের এই জিনিস দেখতে পারেন. আমি বলা showDivisions এটি, এবং এটি যাতে আমি জানতে পারেন কি স্থানান্তর হতে পারে সম্পর্কে, এবং আমরা কেন ঠিক এক সেকেন্ড দেখতে পাবেন. এটা কিভাবে আমি আমার অ্যাপ্লিকেশন বিভিন্ন পর্দা তারযুক্ত আপ করেছি. যদি এই ছিল একটি বাটন, উদাহরণস্বরূপ, বরং একটি টেবিল ভিউ, আমি বাটন ক্লিক করুন এবং নিয়ন্ত্রণ, পরবর্তী পর্দায় উপর টেনে আনতে পারে, এবং যে কিভাবে আমি গৌণ যে ভাবে করতে পারেন. সত্যিই দ্রুত, যদি আমরা MasterViewController হয়ে ওঠা, আবার, কেবল আমরা একটা তালিকা সংজ্ঞায়িত করছি যাচ্ছে যে টেবিল ভিউ প্রদর্শিত হবে. এখানে আমি যে plist ফাইলটি নিয়ে যেতে বলছে করছি, এবং আমি আপনাকে এটি লোড করতে একটি অভিধান মধ্যে আপ করতে চান, এবং আপনি যে একবার অভিধান আছে, আমি আবার ঐ একই প্রশ্নের উত্তর যাচ্ছি. এখানে বিভাগের নম্বর. এক, প্রত্যেক লিগের জন্য এক সারি, এবং প্রতিটি কক্ষের পাঠ্য আছে প্রথম এক হয়, প্রথম লীগ, দ্বিতীয় লীগ, এবং তাই করা উচিত. অবশেষে, আমি এই পদ্ধতি যে শুধু আমরা prepareForSegue নামক SAW ব্যবহার করতে যাচ্ছি, এবং এই পদ্ধতি যে বহিস্কার করা যাচ্ছে যখন আমি এর ক্লিক করুন ঐ এক সারি এবং সেইজন্য যে রূপান্তরটি সক্রিয় যে আমি তীরযুক্ত সেট আপ করুন. এই যে আমি একাধিক থাকতে পারে না বলছে সর্ম্পকগুলি থেকে এক পর্দা অন্য যাও. যদি আমি 2 বোতাম আছে এবং প্রতিটি বোতাম একটি ভিন্ন পর্দায় নিয়ে যাওয়া হবে আমি প্রতিটি বোতাম জন্য 2 segues, 1 আছে যাচ্ছি. কিন্তু এই prepareForSegue হল আবার, চালু করা হবে পুনঃব্যবহৃত যাও বিভিন্ন সম্পর্কের প্রতি জন্য, যাতে এর মানে হল যে আমি একটি উপায় প্রয়োজন এর চিহ্নিতকরণের যদি আপনি প্রথম বাটন টিপুন অথবা আপনি দ্বিতীয় বাটন টিপুন. যখন আমি একটি নাম দিয়েছি, এই showDivisions segue মনে রাখুন যে, যে কিভাবে এখন আমি জানি যে এই segue যে সক্রিয় ছিল. সমস্ত আমি কি চাই আমি বলতে চাই আমি জিনিসটা কি আমি আঘাত করতে চান, এবং তা যে পেতে, আমি নির্বাচিত সারি জন্য indexPath চান বলতে পারেন, indexPath মনে রাখবেন শুধু বলেছেন যেখানে শুধু আমি ক্লিক, এবং তারপর আমি আমি জিনিসটা যেখানে আমি যাচ্ছি চান বলতে চাই. এই destinationViewController, যে segue একটি সম্পত্তি. যে পর্দা আমি চলেছি, তাই আমি জানি যে পর্দা আমি যাচ্ছি DivisionsViewController বলা হয় কারণ আমি যে বর্গ তৈরি, এবং তাই এখন যদি আমি বলতে d.divisions আমি এখন করছি দেখুন নিয়ামক আমি যেতে সম্পর্কে একটি সম্পত্তি সেটিং. এই ভাবে আমি এক স্ক্রীন থেকে তথ্য প্রেরণ করছি অন্য পর্দায়. এই DivisionsViewController এ শুধু খুঁজছি আপনি এখানে দেখতে পারেন যে. জ ফাইল যে সম্পত্তি বিভাগ আছে, এবং তাই মূলত আমি পূর্ণ করছি, যাতে কিভাবে আমি জানি আমি বিভাগ প্রভৃতি প্রদর্শন করা হবে লীগ যে আমি ক্লিক করেন, এবং আবার, প্রকৃত টেবিল ভিউ অনেক সুন্দর দেখায় একই, শুধু যারা উত্তর 3 সাধারণ প্রশ্ন হিসেবে চিহ্নিত যখন আপনি পরবর্তী ধাপে অগ্রসর না কি. শুধু এখানে অন্যান্য জিনিস এক দম্পতি. আপনি উপরের যে এখানে বিজ্ঞপ্তি বদলে বলছে # অন্তর্ভুক্ত আমি এখন করছি বলছে # ইম্পোর্ট. এটি শুধু একটি Objective-C জিনিস. ইম্পোর্ট মূলত একটি অন্তর্ভুক্ত রয়েছে nicer সংস্করণ, এবং উদাহরণস্বরূপ, আমরা কি এই শ্রেণী জানা প্রয়োজন, তাই আমি DivisionsViewController না বলতে পারেন. যদি আমরা আমাদের. গ ফাইলের standardio.c ভিতরে হ্যাশট্যাগ না কম্পাইলার কোন ধারণা ছিল কি printf ছিল. একইভাবে, যদি আমি DivisionsViewController আমদানি না কম্পাইলার সত্যিই কোন ধারণা কি একটি DivisionsViewController হয় আছে. শুধু নিশ্চিত যে আপনার ভিন্ন. মি ফাইলের ভিতরে আপনি করতে আমদানি নিশ্চিত করুন অনুরূপ. জ ফাইল যাতে কম্পাইলার জানেন কি করছেন. অবশেষে, পরিণামে কি আপেল না হয় কিছু একটা ওয়েব ব্যবহার করে দেখুন তথ্য প্রদর্শন, এবং তাই একটি ওয়েব দেখুন একটি বস্তু যা আপনি এম্বেড করতে পারেন একটু আপনার অ্যাপ্লিকেশন ভিতরে ওয়েব ব্রাউজার. সমস্ত আপনাকে আপনার ওয়েব ব্রাউজারে একটি URL টি সরবরাহ, তাই আমি mlb.mlb.com যেতে চান, এবং এই ভাবে আমি প্রতিটি দলের জন্য হোম পেজে অ্যাক্সেস করতে পারেন, এবং তাই এই URL-এ ক্ষণস্থায়ী ওয়েব দেখুন সম্পর্কে এই জন্য, এবং প্রদর্শন করতে পারেন আমি প্রায় ব্রাউজ করতে পারেন, এবং যে এক দ্বারা ব্যবহার করা হয় কাল্পনিক. এখন এই আমার plist থেকে এসেছিলেন. যদি আমি এই ক্লিক করুন এই এছাড়াও আমার plist থেকে এসেছেন, এবং এই সহচরী ঘাঁটা ছিল দ্বারা যারা segues সংজ্ঞা. আমি এই ক্লিক করুন এবং একটি আরো, এবং এখানে এখন তাই ঠিক সেই মতো আমার UIWebView, এখানে URL এর জন্য ওয়েবসাইট, যা শুধু আমি এম্বেড করা, এবং আমি কিছু ছবি হ্যান্ডেল করতে হত না. এটি কিভাবে একটি ওয়েব পেজ প্রদর্শন. এই বোতাম এখানে ভালো জিনিস সম্পর্কে আরও দেওয়া হয় সম্পূর্ণই জন্য বিনামূল্যে কারণ আমি এই segues ব্যবহার সম্পর্ক সংজ্ঞায়িত করেছি. কোন প্রশ্ন? হাঁ. [ছাত্র] সুতরাং যখন আপনি alloc ব্যবহার, আপনি বিনামূল্যে কিছু আছে না? ঠিক, যখন আপনি কল alloc এবং init আপনি এটি মুক্ত হবে না. IOS আপনার জন্য যে সমস্ত হ্যান্ডেল করতে যাচ্ছে. এটা বিস্ময়কর, এবং আপনি কোন নিয়ম ভঙ্গ করছি না. হাঁ. [ছাত্র] যদি আপনি আরো দল যে পর্দায় দেখা যায়নি অন্তর্ভুক্ত ছিল, স্বয়ংক্রিয়ভাবে এটি একটি স্ক্রোল বিকল্প আছে, হবে অথবা যে কোন কিছু যা আপনি যুক্ত করার প্রয়োজন? ঠিক, উদাহরণস্বরূপ যদি আমি আরো দল ছিল,, এটি স্বয়ংক্রিয়ভাবে হ্যান্ডেল করবে সম্পর্কে জন্য স্ক্রল করে, এবং সমস্ত কর্মক্ষমতা উদ্বেগ বিশাল টেবিলের সাথে সম্পর্কে জন্য সম্পূর্ণভাবে ঘাঁটা. অন্য প্রশ্ন? এই কোড সকল পোস্ট করা যাচ্ছে. আমরা আরো একটি গৌণ বিবরণ সামান্য বিট উপর ধরনের glossed, কিন্তু সেটা আর ভালো ওয়েব দৃশ্য কিছু বৈশিষ্ট্য নির্ধারণের শুধু যে আপনি আপেল এর ডকুমেন্টেশন ব্রাউজ করে পেতে পারেন, যা সত্যিই সত্যিই, চমত্কারভাবে পরিপূর্ণ. তারা নমুনা একটি অ্যাপ্লিকেশনের এবং অনেক উদাহরণ আছে ব্যবহারগুলির বিভিন্ন API সমূহ, যাতে স্পষ্টভাবে আপনি করতে পারেন যদি সেই পড়া. শুধু কিছু সহায়ক লিঙ্ক কটাক্ষপাত আপনি চাইবেন. এগুলি কিছু কুশলী ডকুমেন্টেশন গাইড. URL গুলি বৃহদায়তন হয়, যাতে তারা কমান করছি. এই প্রথম একটি ডকুমেন্টেশন সমগ্র লাইব্রেরী. একটু অনুসন্ধান বার নেই, সুতরাং আপনি যদি টাইপ বোতাম শুরু এটি প্রদান সমস্ত সমস্ত জিনিষ আপনি একটি বাটন করতে পারেন সম্পর্কে তথ্য আপনি শুরু হবে. আমি করেছি টেবল দেখুন প্রোগ্রামিং গাইড অন্তর্ভুক্ত. এটা আরো অনেক বিষদভাবে টেবিল দেখা হ্যান্ডলগুলি, কিভাবে জিনিষ ভালো পরিবর্তনশীল কোষ বা সম্পাদনা কোষ বা যোগ অথবা অপসারণ করতে. অ্যাপল থেকে অনেক নমুনা Apps এর যে আপনি কিভাবে যে কি হবে আছে, এবং পরিশেষে, এই শেষ হল হিউম্যান ইন্টারফেস গাইডলাইনস, এবং এই মূলত UI উপাদান কিছু আলোচনা, ভালো জিনিস একটি বাটন যে 4 পিক্সেল 4 পিক্সেল করবেন না. এটা একটা খারাপ ধারণা, এবং অন্যান্য জিনিসের আপেল যে কি চায় ভাল ডিজাইন করার জন্য উত্সাহিত করি. কোন শেষ প্রশ্ন করার আগে আমরা শেষ পর্যন্ত? সমস্ত অধিকার স্পষ্টভাবে, মুক্ত আলোচনা করতে বিশেষ লেবেল থাকতে যাচ্ছে-we're বোধ. আমরা একটি iOS আছে করব, যাতে স্পষ্টভাবে যে ব্যবহার করতে পারেন বোধ. আপনি যদি আপনার সহপাঠীদের সঙ্গে প্রকল্পে কাজ করতে চান সাহায্য বা কিছু র্যান্ডম iOS স্টাফ চিত্র আউট আমাকে নির্দ্বিধায় ইমেল, এবং স্পষ্টভাবে সমস্ত কোড অনলাইন কারণ পুঙ্খানুপুঙ্খরূপে পরীক্ষা করা ঠিক সময় আগ্রহের মধ্যে আমরা আরো বেশী ধরনের glossed জিনিষ তীক্ষ্ণ স্বরূপ খসখসে বিবরণ. কিন্তু যদি না থাকে, তাহলে আপনার iOS প্রকল্পে সৌভাগ্য, এবং আমি আশা করি আমরা আছে একটি অ্যাপ্লিকেশনের বড় অ্যাপ স্টোর মধ্যে অন্তঃপ্রবাহ. [CS50.TV]