Tianyu LIU: আরে, কিভাবে এটা সবাই যাচ্ছে? এবং এই iOS অ্যাপ্লিকেশন উদ্দেশ্য গ সেমিনারে প্রোগ্রামিং. আমার নাম Tianyu লিউ হয়. আমি ডান এখন একটি লোএল জুনিয়র কম্পিউটার বিজ্ঞান মধ্যে মনোযোগ. তাই এই সেমিনারে আমি যাচ্ছে আপনি না শেখান একটি অ্যাপ্লিকেশন কিভাবে সম্পর্কে একটি সামান্য বিট. ইয়ে, এটি জন্য উত্তেজিত. এমনকি আমরা ডাইভিং শুরু করার আগে তাই প্রকৃত প্রোগ্রামিং প্রান্তের মধ্যে, সম্পর্কে কথা বলতে দ্রুত ঠিক সত্যিই যাক কেন আপনি একটি iOS অ্যাপ্লিকেশন নির্মাণ করতে চাইবেন? কেন প্রয়োজন iOS তাই সন্ত্রস্ত? প্রথম সমস্যা, তাই প্রথম আমাদের জন্য বেশ ভালো জিনিস যে, বিশেষ করে একটি CS50 হিসেবে ছাত্র, যে সামঞ্জস্যপূর্ণ iOS উদ্দেশ্য সি ভাল ব্যবহার আছে, ক্ষিপ্রগতি নামে একটি নতুন ভাষা, কিন্তু আমরা করছি যাচ্ছে না এই সেমিনারে যে ব্যবহার. আপনি সেখানে, ক্ষিপ্রগতি আগ্রহী হন, তাহলে যে সম্পর্কে একটি স্বাধীন সেমিনার হয়. কিন্তু উদ্দেশ্য সি মূলত সি অর্থ একটি সুপারসেট আপনি সি ব্যবহার যে সব করতে পারেন উদ্দেশ্য সি অনুবাদ করা খুব সহজে. আপনি পরে, যে প্রকৃতপক্ষে দেখতে হতে পারে হিসাবে কিছু খুব মৌলিক বাক্য গঠন আছে, মূলত ঠিক একই, সি এবং উদ্দেশ্য C. তাই, আপনি CS50 নিয়েছে থেকে এই পর্যন্ত পর্যন্ত, আপনি ইতিমধ্যে অন্তত 40% উদ্দেশ্য সি জানি. এছাড়াও, আপেল একটি সত্যিই আছে iOS জন্য জোরালো এপিআই. সত্যিই পাগল এর একটি অনেক আছে জিনিষ আপনি এটি করতে পারেন. যা এক কেউ আসলে একটি iOS অ্যাপ্লিকেশন তৈরি নিয়ন্ত্রণ গাড়ি, যা বেশ আকর্ষণীয়. সম্ভবত একটি হেলিকপ্টার আরো উত্তেজনাপূর্ণ. কিন্তু যে কিভাবে শক্তিশালী প্রয়োজন iOS এপিআই হতে পারে. এবং হিসাবে আপনি থাকতে পারে ডান এখন মূর্ত আউট, স্ট্যাক ওভারফ্লো সম্ভবত এক সবচেয়ে গুরুত্বপূর্ণ অনলাইন সম্পদ আপনার জন্য উপলব্ধ. এবং ভালো খবর, জন্য প্রতি আপনি সম্ভবত পারেন একক সমস্যা নির্মাণের সময় মনে আপনার উদ্দেশ্য সি চূড়ান্ত প্রকল্প, একটি স্ট্যাক ওভারফ্লো উত্তর সম্ভাবনা আছে. এটা ঠিক ভয়ঙ্কর. যে উপরন্তু, প্রয়োজন iOS সত্যিই একটি প্ল্যাটফর্ম আপনি একটি বিশাল পৌঁছতে পারে যেখানে সামান্য প্রচেষ্টার সঙ্গে শ্রোতা. এটি Android, যেখানে চাই না সবকিছু সুন্দর খণ্ডিত. সব সামঞ্জস্যপূর্ণ iOS ইউনিফাইড হয়. এবং যতদিন আপনি তৈরি একটি আইফোন জন্য একটি অ্যাপ্লিকেশন, আপনি যা করতে পারেন খুব সহজে পোর্ট রহমান যে, রহমান মিনি, বা বিভিন্ন আইফোন মাপ. এই সব সত্যিই সুবিধাজনক. এবং এটা শুধু সত্যিই ভাল আপনার বন্ধুদের impressing জন্য. আপনি শুধু একটি আইফোন ধরে রাখতে পারেন এবং, হেই আপনার বন্ধু বলুন এই আমি অ্যাপ্লিকেশন. আপনি যে কোনো জন্য তা করতে পারে যা সুন্দর ডেস্কটপ অ্যাপ্লিকেশান. ঠিক আছে, এখন আমি কি আসলে পেতে দেওয়া ভাষা উদ্দেশ্য সি মধ্যে তাই কেন আমরা দিয়ে শুরু করবেন না কিছু সত্যিই মৌলিক বাক্য গঠন. আমি লক্ষ্য আগে উল্লেখ করেছে সি এটা সি মূলত একটি সুপারসেট এর তাই মৌলিক বাক্য গঠন অনেক আছে আসলে ঠিক একই. একটি পরিবর্তনশীল প্রকাশক এবং দুটি ভেরিয়েবল একসঙ্গে যোগ আমরা মারিও কাজ করেছেন ঠিক হিসাবে হয়. এখানে নতুন কিছুই নেই. লুপ জন্য একইভাবে, বাসিন্দা এবং অবস্থা একই. আপনি হিসাবে আপনি শুধু লুপ জন্য একটি কি করতে পারেন একটি মারিও [শ্রবণাতীত] করেছিল হয়েছে. এবং যদি আপনি শর্ত করতে পারেন ঠিক যেমন আপনি কি আপনার আগের পি সেটা সেট করে করা হয়েছে. তবে, উদ্দেশ্য সি , সি সম্পূর্ণভাবে হয় না এবং কিছু আছে যে অদ্ভুত ধরনের এটি সম্পর্কে. প্রথম এক হচ্ছে আপনি যখন যে C প্রোগ্রামিং করছেন, আপনি সাধারণত কল অন্তর্ভুক্ত এবং তারপর একটি লাইব্রেরি নাম. কিন্তু উদ্দেশ্য সি আপনি যে আমদানি কল. মূলত, কার্যকারিতা বলার অপেক্ষা রাখে না শুধু ভিন্ন নাম. এবং স্ট্রিং হয় আসলে একটি সামান্য বিট অদ্ভুত. আপনি যদি প্রথম দেখতে পারেন অদ্ভুত ধরনের যে জিনিস আপনি একটি চমত্কার অদ্ভুত আছে sorry-- আপনি একটি চমত্কার অদ্ভুত এন আছে এখানে ওভার সাইন ইন করুন. এবং দ্বিতীয় বিষয় যে অদ্ভুত ধরনের আপনি আগে সাইন একটি আছে আসলে স্ট্রিং ঘোষণা. তাই সাইন মূলত উল্লেখ একটি স্ট্রিং একটি স্ট্রিং না শুধুমাত্র যে, এটি আসলে একটি বস্তু. আমরা ব্যাখ্যা করতে যাচ্ছেন যে পরে, তাই না প্যানিক যদি আপনি না কি যে মানে বুঝতে. এবং কনসোল মুদ্রণ একটি সামান্য বিট বিভিন্ন কারণ আমরা printf কল সি, কিন্তু উদ্দেশ্য সি আমরা [শ্রবণাতীত] কল. আপনি যে কি হতে পারে. যে printf, মূলত শুধু একটি ভিন্ন ভাষা. ঠিক একই ব্যবহার, ঠিক একই কার্যকারিতা. আচ্ছা এটা দেখা যাচ্ছে যে উদ্দেশ্য সি আসলে একটি NS প্রায় পূর্বে আছে সবকিছু প্রত্যেক মৌলিক ডাটা টাইপ, nsdictionary, nsarray, NSString. কারণ NS হচ্ছে যে আসলে পরবর্তী ধাপ ঘোরা, যা একটি কোম্পানী যে স্টিভ জবস, প্রতিষ্ঠিত হয়েছে একটি কোম্পানী যা যেখানে ভাষা উদ্দেশ্য সি জন্ম হয়. তাই এই মূলত ঐতিহ্য. আমি এটি একটি সামান্য বিট জানি অদ্ভুত, কিন্তু এটি অ্যাপল এর. এমনকি weirder, যাতে কিছু যে তুলনায় ফাংশন ঘোষণা করা হয়. এই আমরা কি থেকে খুব আলাদা সি দেখতে এখানে এটা আসলে কারণ আর সি এর মত না. আপনার দ্বারা এখানে কি আছে এই একটি বুলেট পয়েন্ট না পথ, এই একটি বিয়োগ চিহ্ন. আপনি একটি বিয়োগ চিহ্ন বন্ধনী আছে অকার্যকর এবং তারপর ফাংশন নাম. এর ঠিক করা যাক বলে আমরা তারপর, হ্যালো দুনিয়া আছে রিটার্ন টাইপ অকার্যকর হতে পারে আমরা কিছুই ফিরে কারণ. কি সত্যিই অদ্ভুত পায় আপনি যখন যে একাধিক পরামিতি হচ্ছে একই ফাংশন মধ্যে পাশ যে এখানে দেখানো হয়েছে সত্যিই অদ্ভুত হতে হবে. আমরা একটি পদ্ধতির নাম আছে, বলা addInt [শ্রবণাতীত] এবং আমরা এক পরামিতি পার করছি. কিন্তু পরে, আমরা সঙ্গে আরো পদ্ধতির নাম কল. এবং সঙ্গে পরে আমরা পার করছি দ্বিতীয় প্যারামিটার. আসলে এই একটি সামান্য বিট অদ্ভুত কিন্তু এই সব ফাংশন ঘোষণা এই হিসাবে একই প্যাটার্ন অনুসরণ করুন. আমরা দিয়ে শুরু করতে একটি বিয়োগ চিহ্ন আছে. ঋণচিহ্ন একটি যোগ চিহ্ন হতে পারে কখনও কখনও পদ্ধতি কি ধরনের উপর ভিত্তি করে এটা. পদ্ধতি মূলত ফাংশন জন্য অন্য একটি নাম. এবং আমরা চলুন ব্যাখ্যা যে পরে যখন আমরা বস্তুর বিষয়ে কথা বলছি ওরিয়েন্টেড প্রোগ্রামিং. আপনি যদি প্রথম ফিরতি উল্লেখ ভিতরে বন্ধনী টাইপ পরে যা পদ্ধতির নাম আসে. আপনি এক পরামিতি পার করছি. এবং আপনি আরো পরামিতি আছে আপনি পদ্ধতির নাম প্রসারিত করতে হবে এবং মূলত এখানে কিছু লিখুন. এটা আপনি চান কিছু হতে পারে. আমাদের ক্ষেত্রে এটা সঙ্গে. কিন্তু আপনি বলতে পারে শেষ, বা বা, বা আপনি চান যাই হোক না কেন বর্ণমালা পূর্ণ বার,. এবং তারপর যে আপনি পরে থাকেন পরামিতি খ ক্ষণস্থায়ী. এটি একটি সত্যিই অদ্ভুত কনভেনশন কিন্তু আমরা অ্যাপল চেয়েছিলেন কেন দেখতে যাচ্ছে খুব দ্রুত কাজ করা হয়. সুতরাং কিভাবে আপনি ফাংশন কল? উদ্দেশ্য একটি ফাংশন কল করা সি সি থেকে ভিন্ন বাস্তবিক, আহ্বান জানিয়ে একটি উদ্দেশ্য সি ফাংশন যদি আপনি কাউকে কথা বলছি মত আরো. এখানে আমরা স্ব আছে, যা একটি বস্তুর বলা হয়. আপনি মূলত করছি বলছে বলতে স্ব বস্তু "হ্যালো ওয়ার্ল্ড!" যে ফাংশন কল করতে হয়. একটি বস্তু এবং একটি পদ্ধতির নাম একে অপরের সঙ্গে মিলিত. এবং এই যেখানে অদ্ভুত এক্সটেনশন পদ্ধতির নামের জন্য সত্যিই করে আসে. এর দ্বিতীয় উদাহরণ তাকান. আমরা শুধু নামে একটি পদ্ধতি নির্ধারিত addInt সঙ্গে বাজে বাজে বাজে কথা. আপনি আহ্বান করা হয় যখন এই ক্ষেত্রে যে নির্দিষ্ট [? বার্তা?] এটি হচ্ছে স্ব addInt মত চেহারা: 10: 2. এটা ইংরেজি মত শোনাচ্ছে. ফাংশন যদিও ফাংশন ঘোষণা, অদ্ভুত উদ্দেশ্য সি এর বিন্দু পদ্ধতি ঘোষণা প্যাটার্ন, আপনি আহ্বান করা হয় যে যখন ফাংশন বা পদ্ধতি এটা আসল ইংরেজি মত শব্দ হবে. সুতরাং এটা খুব স্বজ্ঞাত আপনি তা পেতে একবার. বিশেষ করে, এই ক্ষেত্রে, যেখানে আপনি মূলত করতে পারেন ফাংশন নাম দেখতে সাজানোর নিজেই দলিল. আপনি যে কোনো প্রয়োজন হবে না আরো ব্যাখ্যা দেখতে ঠিক কি ঘটছে তা, কি ঠিক এক পরামিতি করছেন. যে অতিক্রম যাওয়া, এর একটু কথা বলা যাক অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং সম্পর্কে বিট. অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং হয় মৌলিক প্রোগ্রামিং এক যে কৌশল বা নিদর্শন উদ্দেশ্য সি উদ্দেশ্য সি দ্বারা ব্যবহৃত উদ্দেশ্য সি, না বলা হয় সি, সত্যিই একটি ভাল কারণ. আমরা মধ্যে পেতে তাই আগে উদ্দেশ্য সি বাক্য গঠন, সত্যিই দ্রুত তাকান ঠিক কি একটি অবজেক্ট. আমরা সম্ভবত কিছু কাজ করেছি আগে বস্তুর মত যা আপনি যখন struct নামক হয় একটি গাছ বা একটি লিঙ্ক তালিকা বাস্তবায়ন বা [? চেষ্টা করুন. ?] সুতরাং, এটা মূলত একটি struct মত, কিন্তু এটা অনেক বেশি শক্তিশালী যে আর এর. একটি বস্তুর পদ্ধতি এবং বৈশিষ্ট্য আছে. পদ্ধতি মূলত ফাংশন. মূলত একটি ফাংশন যে একটি নির্দিষ্ট বস্তুর নির্দিষ্ট. এবং বৈশিষ্ট্য মূলত হয় ক্ষেত্র আপনি struct মধ্যে উল্লেখ করুন. প্রতি একক বস্তুর জন্য তাই আমরা কিছু সম্পত্তি আছে কিছু ভেরিয়েবল আছে যা বস্তু নির্দিষ্ট. এবং আমরা কিছু ফাংশন আছে, যা এছাড়াও বস্তুর নির্দিষ্ট. এবং ফাংশন পদ্ধতি বলা হয় এবং ভেরিয়েবল বৈশিষ্ট্য বলা হয়. এটি শুধু একটি অভিনব নাম. আপনি আসলে যখন, প্রতি একক দেখুন আপনি একটি iOS অ্যাপ্লিকেশন খোলার, যখন আপনি দেখতে , এর ঠিক টুইটার বা ফেসবুকে বলা যাক আপনি দেখতে প্রত্যেক একক দেখুন একটি বস্তু. এমনকি সমগ্র অ্যাপ্লিকেশন একটি বস্তুর সঙ্গে শুরু. অত্যন্ত আকর্ষণীয় ধারণা. এবং কেন আমরা বস্তুর চান না প্রোগ্রামিং ভিত্তিক? তাই আপনি কল্পনা করতে পারেন যখন আপনি যে প্রোগ্রাম এটি বেশ জটিল পায়. এর ঠিক যখন আপনি শুরু করা যাক বলে দাবার ছক বাস্তবায়ন, যুক্তি যাচ্ছে সত্যিই জটিল. আপনি 36 বিভিন্ন আছে টুকরা, যে, তাই যদি আপনি সব জন্য যুক্তি লিখতে চান দাবা 36 বিভিন্ন টুকরা, যে অনেক হতে যাচ্ছে বিভিন্ন ফাংশন এবং ভেরিয়েবল. এটা কষ্ট অনেক. এবং সম্ভবত আপনি একটি লিখতে যাচ্ছেন বিভিন্ন পদ্ধতি বা বিভিন্ন ফাংশন টুকরা প্রতিটি জন্য ঠিক কি তারা নিয়ন্ত্রণ করে. কিন্তু যদি আপনি না অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং, এই টুকরা সব মধ্যে আনমনা করা যেতে পারে এক একক বস্তু. এবং বস্তুর কিছু সাধারণ হবে টুকরা কি ধরনের মত বৈশিষ্ট্য, এটা? এটা কি রঙ? এটা কিভাবে স্থানান্তর করতে পারেন? এবং যে ভাবে আপনি ব্যাপকভাবে আছে এটা যুক্তি সরলীকৃত. তাই এটি শুধু একটি সত্যিই ভাল উপায় জটিল প্রোগ্রাম করা, এবং হায়ারারকিকাল সম্পর্ক প্রোগ্রামের মধ্যে, খুব সহজ. আমরা দেখতে যাচ্ছেন হিসাবে কেন খুব দ্রুত যখন আমরা আসলে করছেন আসলে আমরা যখন প্রোগ্রামিং একটি S কোড করছেন পরে সময় প্রোগ্রামিং. ভাল যে ছাড়াও, অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং শুধু মজা অনেক. আপনি আপনার নিজের বস্তু ডিজাইন পেয়েছিলাম. আপনি কি ডিজাইন করতে পেয়েছিলাম এটা নিজের দ্বারা মত চেহারা. এটি কোন সঠিক উত্তর নেই. এবং এটা সম্পূর্ণ আকর্ষণীয়. তাই অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং, দুটি মৌলিক ধারণা বর্গ এবং উদাহরণস্বরূপ হবে. একটি বর্গ মূলত বস্তুর জন্য একটি টেমপ্লেট. এবং একটি দৃষ্টান্ত মূলত এক নির্দিষ্ট বস্তু. এর শুধু আপনি একটি কুকি তৈরি করছেন বলে. এই ক্ষেত্রে, প্রতি একক আপনি আসলে দিয়ে শেষ কুকি একটি বস্তু হতে যাচ্ছে. কিন্তু কুকি প্লেট আপনি সেকা ব্যবহার সমস্ত কুকি একটি বর্গ হতে হবে. একটি বর্গ মূলত একটি টেমপ্লেট. এবং উদাহরণস্বরূপ একটি নির্দিষ্ট হতে হবে বস্তু যে ক্লাস থেকে বের করে নির্মিত. এবং একটি দৃষ্টান্ত তৈরি করা হবে বর্গ ঘোষণা উপর ভিত্তি করে, আমরা পরে স্লাইড দেখতে হবে. তাই এর আসলে সত্যিই একটি কাজ করতে দিন দ্রুত উদাহরণ [শ্রবণাতীত]. আসুন আমরা ঘোষণা করছি বলা যাক একটি বিড়াল একটি বস্তু. বস্তু থাকতে হবে বিড়াল বর্গ উচিত কিছু বৈশিষ্ট্য এবং পদ্ধতি আছে. বৈশিষ্ট্য উচিত কি ধরনের বর্গ থাকতে বিড়াল থাকা উচিত? উদাহরণস্বরূপ, রঙ, বয়স এবং শাবক, যারা ভেরিয়েবল হবে প্রতিটি বিড়াল নির্দিষ্ট. এবং যারা কিছু কিছু বিষয় আছে আমরা একটি বিড়াল বর্ণনা করতে ব্যবহার করতে পারেন. পদ্ধতি কি ধরনের, বা একটি বিড়াল কি করতে পারি? কিছু দ্রুত উদাহরণ মৃগয়া হবে মাউস, মাছ খাওয়া বা শুধু মীআও. এটি একটি সত্যিই দ্রুত বিড়াল বর্গ উদাহরণ. এবং একটি সত্যিই নির্দিষ্ট বিড়াল বস্তুর একটি বিড়াল হবে আমরা উল্লেখ যেখানে রঙ, বয়স এবং শাবক. যে ক্ষেত্রে, আমাদের বস্তু আর একটি বর্গ আর. আমরা বর্গ থেকে টেম্পলেট কপি এবং আমরা প্রতিটি নির্দিষ্ট তথ্য উল্লেখ যে নির্দিষ্ট বস্তুর এটা স্বাধীন করা. এবং যদি আপনি আহ্বান করা হয় যখন একটি বস্তুর ভিতরে একটি পদ্ধতি, আপনি শুধু বস্তুর উপর মীআও কল যা আপনি শুধু তৈরি বিড়াল. সম্ভবত আপনি প্রিন্ট আউট হবে "হ্যালো ওয়ার্ল্ড মত কিছু! মীআও. " সুন্দর সুন্দর. ঠিক আছে, ঠিক দিন কিছু কিছু বিবরণ মধ্যে পেতে এবং ঠিক যে কি আছে দেখতে iOS প্রোগ্রামিং হচ্ছে অনুবাদ. প্রয়োজন iOS প্রতি একক প্রোগ্রামিং তাই বর্গ দুটি ফাইল মধ্যে বাস্তবায়ন করা হবে. একটি ফাইল, এখানে যা ইন্টারফেস বলা হয়. অন্য ফাইল, এখানে যা বাস্তবায়ন বলা হয়. সাধারণত ইন্টারফেস extension.h হবে আমরা সি লাইব্রেরি দেখা হয়েছে. ও বাস্তবায়ন ফাইল extension.n আছে যাচ্ছে. এটা অদ্ভুত ধরনের. কিন্তু আছে, গ আসলে এন মানে তাদের মধ্যে মৌলিক পার্থক্য দুই. তাই এই ক্ষেত্রে, আমরা করছি দেখতে পারেন বস্তু: ইন্টারফেস, বিড়াল ঘোষণা. যে উত্তরাধিকার বলা হয়. আমরা মূলত উত্তরাধিকার সূত্রে প্রাপ্ত করছি অবজেক্ট শ্রেণী থেকে বিড়াল বর্গ. তাই প্রতি সম্পত্তি এবং পদ্ধতি ছিল যে পূর্বে অবজেক্ট শ্রেণী সংজ্ঞায়িত স্বয়ংক্রিয়ভাবে নির্ধারণ করা হবে একটি বিড়াল বর্গ হিসাবে ভাল. যে উপরন্তু, আমরা রঙ নির্ধারণ, বংশবৃদ্ধি করা, এবং বয়স, তিনটি ভেরিয়েবল. এটা আসলে দেখে মনে হচ্ছে আপনি আগে কাজ আছে কিছু. এটা struct মত দেখাচ্ছে. মূলত বাক্য গঠন struct, ঘোষণার জন্য, এবং যে সম্পূর্ণই সঠিক. এবং আমি আগে উল্লেখ থেকে, পার্থক্য একটি struct এবং একটি বস্তু, এক মৌলিক পার্থক্য একটি বস্তুর পদ্ধতি আছে যখন একটি struct শুধুমাত্র ভেরিয়েবল আছে. তাই বৈশিষ্ট্য ছাড়াও বা আমরা বস্তুর জন্য তৈরি করেছি ভেরিয়েবল, আমরা কিছু পদ্ধতি উল্লেখ করুন. এর ঠিক এখানে বলা যাক এক মীআও দুই পদ্ধতি, অন্য এক মৃগয়া মাউস. আমরা সম্ভবত একটি ক্ষণস্থায়ী করতে চান আমাদের পূর্ববর্তী পদ্ধতির উপর ভিত্তি করে পরামিতি ঘোষণা প্যাটার্ন. আপনি সম্ভবত একটি মাউস ক্ষণস্থায়ী হতে চান. এবং সম্ভবত আপনি চাইবেন একটি bool বোধক ফিরে আপনার বিড়াল সফলভাবে আছে মাউস ধরা বা না. এই ইন্টারফেস হয়, কিন্তু আমরা করতে পারেন দেখতে যে আসলে ইন্টারফেস কিছু না. এটি শুধু একটি প্রোগ্রাম বলে বিদ্যমান কি কি বিড়াল বর্গ মধ্যে বিদ্যমান. তাই জন্য যাতে প্রোগ্রাম কিছু করতে, আমরা বাস্তবায়ন ফাইল থাকতে হবে. তাই এখানে, আমরা কি প্রথম জিনিস সম্ভবত আমরা ইন্টারফেস আমদানি. আমরা ইন্টারফেস আমদানি করার পর, আমরা পদ্ধতি নির্ধারণ করুন. শুধু এখানে মীআও বলা যাক শুধু প্রিন্ট আউট হবে "হ্যালো ওয়ার্ল্ড!" কনসোলে. এবং বাস্তবায়ন পরে ফাইল, আমরা প্রায় কাছাকাছি কাজ সম্পন্ন হয়. এটি মূলত একটি বর্গ এক বর্গ জন্য ঘোষণা. তাই এখন প্রশ্ন হয়ে, কিভাবে আপনি একটি ভেরিয়েবল ডিক্লেয়ার না? উপায় আপনি একটি তৈরি করতে একটি বর্গ ব্যবহার উদ্দেশ্য সি বস্তুর এখানে করা হয়. আপনি যদি প্রথম উল্লেখ এই একটি বিড়াল পয়েন্টার উদ্দেশ্য সি প্রত্যেক বস্তুর কারণ পরিশেষে একটি পয়েন্টার হিসাবে প্রয়োগ করা হয়. এবং যদি আপনি বর্গ কল, তাদের কল মূলত malloc হয়, যা alloc, যেমন, অপারেটিং সিস্টেম বলছে যে আপনি এই বস্তুর জন্য কিছু মেমরির স্থান প্রয়োজন. এর পর আপনি একটি বস্তু আছে ইতিমধ্যে এবং আপনি ঠিক এটি আরম্ভ. এই মাত্র কনভেনশন হয়. আমি একটি সামান্য বিট অদ্ভুত এটা জানি, কিন্তু এই অ্যাপল উপাদান আছে আসলে কিভাবে হয়. বৈশিষ্ট্য হয় স্থাপন আসলে বেশ সহজবোধ্য. এটা অনুরূপ আপনি যখন কি করছেন আপনি কিছু নির্দিষ্ট নির্ধারণ করছি এর ভিতরে struct ক্ষেত্র. আপনি শুধু পরিবর্তনশীল আছে , সম্পত্তি নাম নাম, এবং এটি একটি নির্দিষ্ট মান নির্ধারণ করুন. এবং একটি পদ্ধতি আহ্বান অনুরূপ. কলিং একটি পদ্ধতি মূলত আমি আমার কথা বলতে কি উদ্দেশ্য সি কোনো পদ্ধতি ফোন করার জন্য আপনি একটি বস্তুর পার করছি এই ক্ষেত্রে, এটা myCat হতে যাচ্ছে এবং আপনি পদ্ধতির নাম পার করছি. আপনি বস্তুর কথা বলছি যদি, আপনি মীআও উচিত myCat. এটি বেশ আকর্ষণীয়. এর পরে, কেউ নেই আরো অপরিহার্য নকশা প্যাটার্ন আমরা সম্পর্কে কথা বলার প্রয়োজন যে প্রকৃত এস কোড চাওয়ার আগে. যে নকশা প্যাটার্ন বলা হয় ইভেন্ট প্রোগ্রামিং চালিত. এই অধিকাংশ সম্ভবত এক iOS প্রোগ্রামিং মৌলিক ধারনা. সুতরাং আপনি সম্ভবত ঠিক কি না জানি না ঘটনা চালিত প্রোগ্রামিং, হয় কিন্তু এটা সত্যিই যে ভয়ের না. ভাল, আসলে, আপনি ইতিমধ্যে যে আগে করা. এই আপনি সম্ভবত করেছি লাইন এক ইতিমধ্যে গত [শ্রবণাতীত] লেখা CS50 এর, google.maps.event.addListener (মার্কার, )} {), ফাংশন ("ক্লিক করুন" :. আপনি এই লাইন কল করে মূলত কম্পিউটার কহন ঘটনা বলা যখনই যে , মার্কার এরকম "ক্লিক করুন" যে ফাংশন ব্যবহার করুন. এই থেকে খুব আলাদা আপনি mario.c কি. Mario.c আপনি শুধু প্রোগ্রাম চালানো একবার, এটা আপনি একটি আউটপুট দেয়, এবং আপনি সম্পন্ন করেছেন. এই ধরণের মত এক শট প্রোগ্রাম. ইভেন্ট চালিত প্রোগ্রাম খুব, খুব ভিন্ন. ফেসবুক একটি এক হয়, এর কল্পনা করা যাক শট প্রোগ্রাম এটা সত্যিই ভাল না. আপনি শুধু ফেসবুক যেতে একবার এবং এটি সম্পন্ন করা হয়. এটা আপনি কিছু আউটপুট দেয় এবং আপনি তা ফেরত না কখনও. আপনি আরো কিছু না কখনও. তাই এখানে, বিশেষ করে আমরা ব্যবহার প্যাটার্ন ঘটনা, যাতে চালিত প্রতি ফাংশন হবে উপর ভিত্তি করে ধরা হবে কি ঘটনা ঘটেছে. উদাহরণস্বরূপ, যদি আমরা আছে একটি বাটন এবং আমরা উল্লেখ যে বাটন ক্লিক করা হয় যখনই যে, বলা ফাংশন কল "হ্যালো ওয়ার্ল্ড!" যে ভাবে আমরা সত্যিই করতে পারেন ফাংশন যুক্তি পরিচালনা একটি অত্যন্ত নমনীয় ভাবে প্রবাহিত. ব্যবহারকারী বা একটি ফাংশন কল করতে পারেন যে ইতিমধ্যে বলা হয়েছে. এটা সম্পূর্ণ ব্যবহারকারীদের কি উপর ভিত্তি করে. সুতরাং আমরা এই দেখতে পারেন mario.c চেয়ে আসলে অনেক ভালো. এবং ভাল খবর এটা যে হয় আসলে না একটি নতুন ধারণা. আপনি না আগে থেকেই কাজ করেছেন যে শেষ সমস্যা সেট. তাই উদ্দেশ্য সি আছে তিনটি ভিন্ন চিত্র ঘটনা চালিত প্রোগ্রামিং জন্য. প্রথম চিত্রটি হয় লক্ষ্য কর্ম বলা হয়, যেখানে আপনি একটি বোতাম সহিত আবদ্ধ কিছু ফাংশন সঙ্গে প্রেস. আপনি ক্লিক যখনই এর ঠিক, বলা যাক কিছু বোতাম, আপনার কিছু ফাংশন কল. এটি খুবই সহজ লক্ষ্য কর্ম হয়. দ্বিতীয় এক আসলে hardest এক, এটা প্রোটোকল উপর প্রতিনিধি দল বলা হচ্ছে. আমরা ব্যাখ্যা করতে যাচ্ছেন মহান বিষদভাবে পরে যে. এবং তৃতীয় উপায় বিজ্ঞপ্তি. এটি আসলে হয় না খুব গুরুত্বপূর্ণ পর্যন্ত আমরা উদ্বিগ্ন থাকেন, সুযোগ কারণ আপনি বিজ্ঞপ্তি ব্যবহার করতে যাচ্ছেন যে আপনার চূড়ান্ত প্রকল্পের মধ্যে বেশ কম. তাই আমরা যে অংশ লাফালাফি করতে যাচ্ছেন. এবং আমরা আকর্ষণীয় চলুন প্রোটোকল উপর প্রতিনিধি দল মধ্যে. তাই ঠিক একটি প্রোটোকল কি? অথবা একটি প্রতিনিধি দল ঠিক কি না? এর সঙ্গে শুরু প্রোটোকল সম্বন্ধে কথা বলুন. প্রোটোকল ঘটনা কিন্তু কিছুই হয় না. কিন্তু এই ঘটনা দেওয়া হয় আপেল দ্বারা আপনার সাথে শুরু করতে. উদাহরণস্বরূপ, আমি নই আপনি কিভাবে অনেক সম্পূর্ণরূপে নিশ্চিত না অ্যাপল এর মূল ব্যবহার অ্যাপ্লিকেশন মেইল ​​বা যোগাযোগ, কিন্তু প্রত্যেক সময় আপনি স্ক্রল টেবিল এবং নির্দিষ্ট সেল টিপুন টেবিলের উপর, যে একটি ঘটনা. এবং আপনি কি করতে চান নিজের দ্বারা যে ঘটনা, এটি আসলে একটি সামান্য বিট কঠিন. তাই অ্যাপল এমনকি যে আপনাকে দেওয়া হয়েছে আপনি সরাসরি ব্যবহার করতে পারেন যাতে ঘটনা আপনার নিজের উপর কিছু করতে. প্রোটোকল আসলে সত্যিই সত্যিই, ব্যাপকভাবে ব্যবহৃত উদ্দেশ্য সি ভাল আসলে, প্রতি একক অ্যাপ্লিকেশন কিছু ধরা অ্যাপ্লিকেশন প্রতিনিধি আছে. সূক্ষ্ম এর ভিতর সব অ্যাপ্লিকেশন লোড করার জন্য প্রোটোকল. এর ঠিক আছে চলুন শুরু করা যাক অ্যাপ্লিকেশন জন্য একটি ঘটনা লোড করেনি. আপনি করেছি তাই পরে কি করা একটি অ্যাপ্লিকেশন তৈরি, আপনি অ্যাপ্লিকেশন খোলার পর, পরে আপনি পরে অ্যাপ্লিকেশন বন্ধ, অথবা আপনি এবং নিদ্রা আইফোন করা. এই যে সব ঘটনা ইতিমধ্যেই আপনি দেওয়া হয়েছে. এবং মূলত এই কণার ভিতরে কোন বাস্তবায়ন করা হবে. অ্যাপল এই ফাংশন যে আপনাকে বলেছে কিছু ঘটনা ঘটে যখন ঘটবে, কিন্তু আপনি যে না কি ফাংশন আপনি সম্পূর্ণ আপ. প্রতিনিধি দল মূলত বর্গ বলার আপনি এই প্রোটোকল পরিচালনার উচিত. এটি একটি সামান্য বিট বিভ্রান্তিকর, কিন্তু এটা হতে হবে যখন আমরা অনেক পরিষ্কার কর্ম এর কোড. প্রোটোকল উপর অর্পণ আসলে একটি হয় অর্থে অত্যন্ত জোরালো প্রক্রিয়া যে আমরা একটি প্রতিনিধি দল যদি একটি নির্দিষ্ট শ্রেণীর জন্য, আমরা মূলত সব ব্যবস্থা করতে সক্ষম ঘটনা সব ধরণের আমরা কোন শ্রেণীর ব্যবহার করে, খুব সুবিধাজনক হাতিয়ার. তাই এক দ্রুত উদাহরণস্বরূপ প্রোটোকল উপর প্রতিনিধি দল আমি শুধু বললাম তা হতে হবে. এই প্রোটোকল বিশেষভাবে বলা হয় tableview [শ্রবণাতীত] ভূমিকা নির্বাচন [এ? সূচক?] [? গত. ?] তাই এই একটি ধরা হবে যে ঘটনা যখন আপনি আসলে একটি নির্দিষ্ট টোকা আপনার tableview মধ্যে ঘর, এর ঠিক আপনার মেইলে বলা যাক অথবা আপনার পরিচিতি অ্যাপ্লিকেশন. একটি ফাংশন ভিতরে ছিল মূলত কিছুই করছেন. কাজ করে না ডিফল্ট কিছু করতে. কিন্তু আপনি নির্দিষ্ট করতে পারেন কি ফাংশন আছে, আপনি আপনার অ্যাপ্লিকেশন আউট করতে চান তা দেওয়া. অত্যন্ত সুবিধাজনক হাতিয়ার. এবং সব যে আমি মূলত বলেন হচ্ছে কিছু খুব মৌলিক বাক্য গঠন এবং আবরণ উদ্দেশ্য সি জন্য মৌলিক ধারণা প্রোগ্রামিং, এবং আমরা কিছু এর কোড করতে পারেন. আরো অনেক উত্তেজনাপূর্ণ. তাই এর কোড আসলে একটি হয় সামান্য বিট অপ্রতিরোধ্য আপনি প্রথমবার জন্য এটি খোলার সময়. এক দ্রুত নোট, তাই আপনি যদি প্রয়োজন iOS উন্নয়ন কাজ করতে চান, আমি অত্যন্ত আপনাকে একটি ম্যাক সুপারিশ. উপর iOS উন্নয়ন করছেন কারণ উইন্ডোজ সত্যিই কঠিন, সত্যিই হয়. এটা doable, কিন্তু এটা সত্যিই কঠিন. এবং আপনি অবশ্যই না ছ সম্পাদনা ব্যবহার করতে চান না. তাই এর কোড আমরা বিভিন্ন এলাকায়. আপনি যদি প্রথম আপ খোলার সময় কোড আপনি একটি করুন দেখতে পাবেন, যা মূলত আপনি সব দেখায় আপনার বর্তমান প্রকল্পে যে ফাইল. আপনি একটি টুলবার এলাকা, যা মূলত মতামত পরিচালনার করা হয়, বা সামান্য কিছু দ্রুত এর কোড নিজেই সম্পর্কে সরঞ্জাম. এবং এই প্রকৃত সম্পাদক এলাকা. এই এলাকায় অনুরূপ ছ সম্পাদনা করা হয়, ছ সম্পাদনা চেয়ে কিন্তু অনেক ভালো. এবং এই অধিকার হল এলাকায়, ইউটিলিটি এলাকা বলা হয়. এলাকায় যখন সত্যিই সহজ হয়ে যায় আপনি ইন্টারফেস তৈরি বা উল্লেখ করছি আপনার app এর জন্য কিছু দ্রুত স্থাপনার. এবং চূড়ান্ত এলাকা ডিবাগ করছে. এই এলাকায় কনসোল রয়েছে. তাই আপনি যদি printf বলতে যখনই, বা, আমাদের ক্ষেত্রে nslog আপনার সব ফলাফল যাচ্ছে এখানে ছাপা হবে. ঠিক আছে? আমি মনে করি আমরা সত্যিই দ্রুত করতে পারেন অনুমান প্রয়োজন iOS প্রোগ্রামিং এর জন্য একটি উদাহরণ. এবং এর আসলে এর কোড খুলুন. তাই আপনি আপ এর কোড খোলার জন্য প্রত্যেক সময়, এটা যে ভালো কিছু দেখা করতে যাচ্ছে. এটা আপনি জিজ্ঞাসা যাচ্ছে আপনি কি করতে চান? আপনি কিছু শুরু করতে চান না মূলত র্যান্ডম, একটি খেলার মাঠ, আপনি শুধু ছাড়া কোড পরীক্ষা করতে পারবেন আসলে যে কোনো অ্যাপ্লিকেশন সংগঠনের. যদি আপনি একটি নতুন প্রকল্প তৈরি করতে চান? অথবা আপনি কি অবিরত করতে চান না বিদ্যমান প্রকল্পের কাজ? আমাদের ক্ষেত্রে আমরা চলুন একটি নতুন প্রকল্প তৈরি. সুতরাং এটা সত্যিই চমৎকার S এর কোড আসলে ইতিমধ্যে আছে কিছু টেমপ্লেট আপনি দেওয়া বস্তু তৈরি করার জন্য. আপনি একটি খেলা করতে চান, কোড এর আসলে আপনার জন্য একটি খেলা টেমপ্লেট আছে, , পৃষ্ঠা ভিত্তিক অ্যাপ্লিকেশন আছে ট্যাব ভিত্তিক অ্যাপ্লিকেশন. এই ক্ষেত্রে, আমরা চলুন খুব সহজ কিছু কাজ করতে, এবং আমরা একটি ব্যবহার করতে যাচ্ছেন একক দেখুন আবেদন. এর পর শুধু আপনি কল করতে চান কি আপনার পণ্য, এবং, আপনার নাম কি কি আপনার শনাক্তকারী, এবং আপনি কি ভাষা ব্যবহার করবেন. এখানে আমরা করতে চাই না কোর ডেটা ব্যবহার করে পরীক্ষা করুন. কোর ডেটা মূলত একটি databasing সামঞ্জস্যপূর্ণ iOS হয়. আপনি কোর ডেটা না, এর কোড নির্ধারণ যাচ্ছে আপনার জন্য অনেক বেশি জটিল ক্লাস. তাই আমরা করছি, সহজ সবকিছু রাখা শুধু কোর ডেটা ছাড়া করতে যাচ্ছে অধিকার এখন. আমরা হতে যাচ্ছেন সমস্যা ব্যবহার করে সমস্যা যে সব হয় আমরা তৈরি করা হয় চলুন আমরা যে মূলত সি থেকে মারিও আমদানি করতে চান একটি iOS অ্যাপ্লিকেশন. তাই এর মারিও-সঙ্গে সামঞ্জস্যপূর্ণ iOS যে কল দিন. অবশ্যই আপনি তা উল্লেখ করুন আপনার প্রকল্পের মধ্যে রাখতে চান. এবং সেখানে আমরা যেতে. তাই এই সামান্য বিট অপ্রতিরোধ্য, কিন্তু এই আসলে আমরা কি শুধু দেখেছি স্লাইড উপর. এবং প্রথম এলাকা আমরা এখন দেখতে মূলত প্রকল্পের কনফিগারেশন. তাই সবকিছু আপনি কি করতে চান প্রকল্প, কি ধরনের ডিভাইস, শুধু বলে দিন কি ধরনের ডিভাইস আপনি আপনার app টি প্রদর্শিত করতে চান? এটি আইফোন, আইপ্যাড বা সার্বজনীন? ডিভাইস স্থিতিবিন্যাস, এই সব উপাদান তাই. খুব গুরুত্বপূর্ণ না, কিন্তু হতে পারে, কিন্তু এই হতে পারে আপনি সেট আপ একটি জায়গা যেখানে আপনার প্রকল্পের আপনি যদি আসলে আপেল দোকান থেকে স্থাপন করতে চান. ঠিক আছে, দেখা যাক আমাদের কোড ভিতরে কিছু যে. এর ফাইল ন্যাভিগেটর মাধ্যমে যান. এবং এই সমস্ত ফাইল যে ইতিমধ্যে খুব সুন্দর টেমপ্লেট, নিয়ে এসেছেন. সুতরাং আমরা তাদের এক ক্লিক করা হলে এই এটা দেখে মনে হচ্ছে কি না. ছ সম্পাদনা অনুরূপ. কিন্তু আপনি দেখতে পারেন সিনট্যাক্স হাইলাইটিং সম্ভবত একটু বিট nicer. এবং এটা আসলে আরো অনেক কিছু ছ সম্পাদনা চেয়ে শক্তিশালী. এবং যদি আপনি স্বয়ং সম্পূর্ণ করতে পারেন আপনার জন্য জিনিস অনেক, আমরা খুব দ্রুত দেখতে হবে. এর পাশাপাশি ডিবাগ এলাকা খুলুন. ঠিক আছে, আমরা দেখতে পারেন, কনসোল অধিকার এখানে. এই আপনি যেখানে দেখতে যাচ্ছেন কি আপনি printf বা কিছু nsloging মধ্যে আছেন. আরও ঝামেলা ছাড়া, তাই আসলে এর যাক অ্যাপ্লিকেশন এবং কম্পাইল সেখানে কি ঘটছে. এক অপরিহার্য বৈশিষ্ট্য জন্য এর কোড, যে কোড একটি আইফোন কাল্পনিক সঙ্গে আসে. তাই আপনি যদি একটি আছে প্রয়োজন হবে না আইফোন, আপনার প্রকল্পের চেষ্টা করতে এর কোড যে অনুকরণ করতে পারেন আপনি, হিসাবে আমরা এখন দেখতে পারেন. এটি বেশ চমৎকার. এটি একটি সামান্য গ্রহণ এর সময় একটু কম্পাইল এবং মূলত আমরা একটি খালি আবেদন, যা আসলে কিছুই না. কিন্তু এটি প্রনয়ন. এটা বেশ ভালো. এটা তাই, সি চেয়ে অনেক ভালো? ঠিক আছে, তারপর আসুন কিছু যোগ করার চেষ্টা করুন. একটি সামান্য বিট যে একটি ফাইল এখানে অদ্ভুত স্টোরিবোর্ড বলা হয়. আসলে এই একটি মহান এর কোড সন্ত্রস্ত বৈশিষ্ট্য. কারণ এর কোড, আপনি ড্র্যাগ আসলে করতে পারেন এবং ইন্টারফেস সম্মুখের উপাদান ড্রপ এবং এটি সরাসরি দেখা যাবে. এর যে চেষ্টা করুন. আমরা এখানে "হ্যালো ওয়ার্ল্ড !!!" একটি লেবেল ড্রপ আমরা যে কেন্দ্র করতে পারেন. চমত্কার. এখন এর এই স্টপ সিমুলেশন চালানো যাক. এখানে আমরা "হ্যালো ওয়ার্ল্ড !!!" আছে আমরা এমনকি এখনো কোন কোডিং না. নরক কি ঘটছে? এই কিভাবে শক্তিশালী হয় ইন্টারফেস নির্মাতা হতে পারে. কারো এমনকি যে বলেন আপনি যা করতে পারেন সম্ভবত শুধু লেখা ছাড়া একটি অ্যাপ্লিকেশন সম্পূর্ণ কোড সম্ভবত একটি হাজার লাইন শুধু ইন্টারফেস নির্মাতা ব্যবহার করে. কিন্তু এটা সম্ভবত না সবচেয়ে ভালো উপায় এটি করতে. এখন আসলে কোডিং নিচে পেতে দেওয়া. ফাইলের জন্য গঠন তাই আসলে সত্যিই মজার হয় কারণ, আপনি দেখতে পারেন, সেখানে কোথাও কোন প্রধান ফাংশন. দেখুন? আমরা আগে উল্লেখ করা হয়েছে, আপনি এই দেখতে পারেন একটি বাস্তবায়ন ফাইল একটি নির্দিষ্ট শ্রেণীর জন্য. কিন্তু প্রধান কোথাও নেই. তাই যেখানে প্রধান? আসলে, একটি প্রধান, কিন্তু প্রধান আসলে আপনার কাছ থেকে লুকানো হয়. প্রধান এখানে. যে পরিচিত মনে হচ্ছে. তাই মূলত কি প্রয়োজন iOS প্রধান ভিতরে করছে প্রধান যখনই যে মূলত, যা বলা অ্যাপ্লিকেশন এটি মৃত্যুদন্ড কার্যকর করা হয় যখনই AppDelegate নামক একটি বস্তুর সৃষ্টি করে. আমি আগে উল্লেখ করা হয়েছে, সমগ্র অ্যাপ্লিকেশন আসলে নিজে একটি অবজেক্ট. মূলত, এই ভাবে তাই iOS অ্যাপ্লিকেশন কম্পাইলার বলছে যে ঠিক আছে, আমি তৈরি করা যাচ্ছে না AppDelegate নামক একটি পণ্য, এবং যে আমার অ্যাপ্লিকেশন হতে যাচ্ছে. তাই আপনি যেতে প্রয়োজন যে AppDelegate মাধ্যমে এবং যে লোক কি করছে দেখুন. আমার পেশা আমার জন্য এটা করা হয়. এবং AppDelegate আপনি দেখতে পারেন কিছু সত্যিই অদ্ভুত ফাংশন আছে, ভাল আসলে পদ্ধতি, যে অ্যাপল ইতিমধ্যেই আপনি দেওয়া হয়েছে. এই কি কি? এই শুধু প্রোটোকল হয় যে আমি যে বিষয়ে কথা হয়. সুতরাং এই ঘটনা যে অ্যাপল সঙ্গে শুরু করতে আপনাকে দেওয়া হয়েছে. কিছুই কিছু নেই এখন ডান কর্ম, কিন্তু আমরা আরম্ভ করতে চান তাহলে আমাদের app এর জন্য কিছু প্রদর্শন মধ্যে পেয়ে আগে কোনো দৃশ্য, আমরা এখানে যে না. আপনি শুধু নাম পড়তে পারেন এবং আমি অনুমান ঘটনা আসলে সত্যিই স্পষ্ট. তাই এখন প্রধান তৈরি করেছে AppDelegate জন্য একটি বস্তু. এবং AppDelegate করতে যাচ্ছে কি আসলে আপনার কাছ থেকে লুকানো হয়. AppDelegate শুরু করতে যাচ্ছে ViewController স্টক লোড. সুতরাং এটা মূলত শুরু করতে যাচ্ছে আপনি যে সব মতামত আপ লোড এবং মাত্র দৃশ্যে রেন্ডার অনুক্রমের উপর ভিত্তি করে. তাই এই ক্ষেত্রে আমরা কেবল আছে এখানে, যা এক দৃশ্য. সুতরাং যে শুধুমাত্র দেখুন যে বলা যেতে যাচ্ছে. ViewController যুক্তি অধিকার এখানে. এই যে আসলে কোড আমরা শুধু দেখেছি দেখুন নিয়ন্ত্রণ করে. ঠিক আছে, এখানে কিছু করতে দিন. তাই viewDidLoad একটি ঘটনা মনে হয়, যখন এই একটি প্রতিনিধি আসলে, এই একটি প্রোটোকল. তাই দেখুন, লোড করা হয় যাই হোক না কেন ফাংশন ভিতরে সবকিছু বলা হবে. এই ক্ষেত্রে আমরা হ্যালো "দেখতে পাবেন Tianyu! "আমরা প্রোগ্রাম চালানো. এটি একটি সামান্য বিট ধীর হচ্ছে স্টোরিবোর্ড ফাইল কম্পাইল. ভাল প্রকৃতপক্ষে, আমরা তার জন্য একটি আউটপুট দেখতে না. এটি বেশ শান্ত. এখন আসলে মারিও না দেওয়া. আমি সংজ্ঞায়িত করা যাচ্ছে না খুব দ্রুত কাজ করে. marioWithLevels: (int-) স্তর ফলাফল. ঠিক আছে, আসলে এই সন্ত্রস্ত এর কোড স্বয়ংক্রিয় সমাপ্তির বৈশিষ্ট্য. তাই আপনার জন্য লিখুন এবং এন্টার যখন, এটি আগে থেকেই টেমপ্লেট আপ দেওয়া হয়েছে আপনার জন্য, যা বেশ শান্ত. এটা সত্যিই হওয়া উচিত আপনি যদি না পরিচিত. দুঃখিত, যে আমার ভুল. ঠিক আছে, শান্ত. যে যুক্তি সত্যিই পরিচিত হওয়া উচিত আপনি যদি না, বিশেষ করে শুধু মারিও. কিন্তু আমরা এখন প্রিন্ট আউট হবে কনসোল প্রতি একক সময়, আমরা একরকম রাখতে চান কারণ আমরা মুদ্রণ ট্র্যাক. আমরা ব্যবহার করতে যাচ্ছেন পরে একরকম ফলাফল, মুদ্রণ প্রদর্শন আউট ব্যবহারকারী যাও ফলাফল. তাই আমরা ঠিক করছি সবকিছু nslogging, যা আমরা সবকিছু সংরক্ষণ করছেন একটি ফাংশন কল ফলে মধ্যে, কিন্তু লজিক ঠিক একই. আমরা এটা, আমরা শেষ করার পর শুধু আমাদের ফলাফল প্রিন্ট করা হবে. এবং এখানে পরিবর্তে মুদ্রণ আমার নাম, আমরা একটি ফাংশন কল করতে যাচ্ছেন. এর কি দেখতে দিন. ওহো, সম্ভবত. আমরা একটা চমৎকার আছে এখানে সামান্য পিরামিড. এটি মূলত সি, আমরা ঠিক আপনি একটি ফাংশন কল যেখানে সাধিত এবং কিভাবে ভালো একটি ফাংশন চেহারা না. বিভিন্ন কিছুই নেই. কিন্তু এই আসলে না খুব উত্তেজনাপূর্ণ এখানে, আমরা যা দেখছি করছি না, কারণ আইফোন অ্যাপ্লিকেশন থেকে কিছু. সুতরাং আপনি আসলে app-- একটি আইফোন আছে আপনি আসলে মারিও সামঞ্জস্যপূর্ণ iOS অধিকার আছে এখন, আপনি যাচ্ছেন না কিছু দেখতে যে কারণ মারিও সাথে কিছু আছে একটি কনসোল মধ্যে যারা আউটপুট একটি ব্যবহারকারীর কাছ থেকে আড়াল করা হয়. এই, আপনি দেখতে কি যা "হ্যালো ওয়ার্ল্ড !!!" হয় ভাল নেই. এখন এর ইউজার দেখতে চেষ্টা করুন ঠিক কি আমরা মুদ্রণ করছি. তাই আমরা আর লেবেল করার প্রয়োজন হবে না. এর চেষ্টা করা যাক এবং কিছু চিন্তা অন্য যে দরকারী হতে পারে. আসলে কেউ নেই বলা হয় যে উপাদান টেক্সট ক্ষেত্রের, যা পারা আমাদের জন্য খুবই সহায়ক হবে. এটি মূলত একটি অঞ্চলের প্রদর্শন টেক্সট সম্পাদনা করা যাবে যে. সুতরাং যে সত্যিই সহায়ক দেখায়. এখন এর টেনে আনুন এবং ড্রপ দেওয়া. বাহ, আমরা একটি টেক্সট দৃশ্য আছে আমাদের দেখুন, সত্যিই অভিনব. যে একটি সামান্য বিট খুব বড়. এটা ছোট করা যাক. কেন্দ্র মধ্যে রাখা. ভাল হিসাবে এটি ছোট করা. এখন আমরা যা আমরা করতে পারে, একটি টেক্সট দৃশ্য আছে আমাদের চূড়ান্ত ফলাফল প্রদর্শন করার জন্য ব্যবহার করা হবে. কিন্তু এখন এটা স্পষ্টভাবে কাজ করে যাচ্ছে না no-- আছে, কারণ ViewController আমরা শুধু জানি না সংজ্ঞায়িত সেখানে একটি টেক্সট দেখুন আছে. তাই আমরা একরকম প্রয়োজন টেক্সট দেখুন লিঙ্ক আমরা শুধু বর্গ তৈরি সঙ্গে ইতিমধ্যে আমাদের সঙ্গে আসা হয়েছে. আমরা যে কি উপায় আসলে সত্যিই যাদুকর. তাই স্টোরিবোর্ড খুলুন. আছে একটি বিশেষ [শ্রবণাতীত] [নামক? সহকারী?] [শ্রবণাতীত]. আপনি যে ক্লিক করুন, এটি দুটি ফাইল খোলা যাচ্ছে. এক একটি বর্গ এবং অন্য এক এটা জন্য একটি সংশ্লিষ্ট দৃশ্য. এটা খুব, খুব সহায়ক. আর এর জ ফাইল মাধ্যমে যায় যাক. কন্ট্রোল, এই [শ্রবণাতীত] যুক্তি হল. কন্ট্রোল টিপুন এবং ড্র্যাগ ঘোষণা টেক্সট দেখুন. আমরা যে outputView কল চলুন. সংযোগ করুন. তাই আমরা এখানে একটি নতুন ঘোষণা করেছেন আমাদের ViewController বর্গ জন্য সম্পত্তি. এবং নতুন সম্পত্তি শুধুমাত্র পাঠ্য দেখুন আমরা ইন্টারফেস বিল্ডিং তৈরি করেছি. যে ভাবে আমরা করতে পারে তাই এক্সেস সব তথ্য এবং ভিতরে যে সব নিপূণভাবে যা ভয়ঙ্কর আউটপুট দেখুন. আমাদের প্রকৃত কোড তাই এর সাথে সাথে কিছু করতে দিন. তাই এই সময় আমরা মুদ্রণ মত যখন চূড়ান্ত ফলাফল আউট মারিও, আমরা কিছু লগ ইন না করছি. আমি মনে করি আমরা রাখতে পারে মানে লগিং বিবৃতি. যে উপরন্তু, আমরা readout * পাঠাতে আমরা শুধু আউটপুট দেখুন, তৈরি করা যা আমরা শুধু তৈরি textview একটি UI 'তে হয়. এখন এর কি দেখতে দিন. বাহ. আমরা এই মুহূর্তে app এর মধ্যে একটি পিরামিড আছে. ব্যবহারকারী আমাদের আউটপুট কারণ দেখতে পারেন, তাই আমরা আমাদের কোড থেকে আউটপুট কপি করা আমাদের ইন্টারফেস. এটি বেশ ভাল. এটা আসলে যে না উত্তেজনাপূর্ণ আমরা can-- কারণ সমস্ত অ্যাপ্লিকেশন করছে আপনি একটি পিরামিড দেখাচ্ছে, এবং আপনি এটা সম্পর্কে কি করতে পারেন কিছুই নেই. এটা বিশেষ করে উত্তেজনাপূর্ণ না. তাই এখন এর একটি বাটন করা যাক যে দৃশ্য মুছে ফেলা হবে. একটি বাটন সহায়ক হবে বলে মনে হয়. টেনে আনুন এবং ড্রপ. বাটন এক. বাটন দুই. সুতরাং আমরা বাম ক্লিক করুন যখন বাটন, দেখুন পরিষ্কার করা উচিত. পর্দায় কিছু থাকা উচিত. এবং আমরা ক্লিক করুন যখন ডান বাটন, মারিও, দেখুন আবার প্রদর্শিত করতে যাচ্ছে. তাই এই পথ আমরা না জাদু উপাদান, নিয়ন্ত্রণ এবং ড্র্যাগ বর্গ ঘোষণা সহকারী director-- মধ্যে সহকারী দর্শকদের মধ্যে. এই ক্ষেত্রে আমরা উল্লেখ করা হয় যে যে একটি কর্ম হতে হবে. clearMario. তাই আমরা এখানে ইতিমধ্যে তৈরি করেছেন clearMario নামক একটি কর্ম, যা বলা হবে যে পদ্ধতি আমরা বোতাম টিপুন স্পষ্ট যখনই. আমাদের আসলে কোড সুতরাং, শুধু এর যাক আউটপুট টেক্সট এবং আউটপুট দেখুন করা কিছুই মধ্যে, এবং যে ভাবে এটা স্পষ্ট হতে প্রদর্শিত হবে. যে উপরন্তু, এর তৈরি করা যাক runMario নামক অন্য একটি পদ্ধতি. ওহ দুঃখিত, একটি সম্পত্তি যে করা উচিত হবে না. ঠিক আছে, যে উচিত পাশাপাশি একটি কর্ম হতে হবে. এবং যে ফাংশন যখন বলা হয়, আমরা শুধু মারিও দশ রান. আশা করছি যে জরিমানা করা হবে. এটা কম্পাইল করে? হ্যাঁ. এখন আমরা একটি দৃশ্য আছে. আমরা একটি আউটপুট আছে. এবং এর ঠিক কি দেখতে দিন. যে চলে গেছে. এটা আবার ফিরে. তাই আমরা এখানে নির্দিষ্ট করা আছে ফাংশন কি ধরনের যখন বলা হবে আমরা কিছু টাইপ, আমরা একটি নির্দিষ্ট বাটন টিপুন. এটি মূলত হয় লক্ষ্য কর্ম পরিকল্পনা ঘটনার জন্য চালিত উদ্দেশ্য সি প্রোগ্রামিং যে উপরন্তু, এটা খুব উত্তেজনাপূর্ণ না আমরা সত্যিই পরিবর্তন করতে পারবেন না, কারণ পিরামিড কিভাবে উচ্চ করা হবে, তাই আমরা সম্ভবত একরকম করতে চান ব্যবহারকারী থেকে একটি ইনপুট পেতে এবং উচ্চতা পরিবর্তন পিরামিড কি তারা আউটপুট উপর ভিত্তি করে. তাই আমরা যে কাজ করতে যাচ্ছেন. সুতরাং আমরা runMario কল যখন এই সময়, আমরা শুধু মারিও সরাসরি কল করবেন না. এই এক এর শিরোনাম. প্রতিনিধি. এটি খুব আকর্ষণীয়. একটি প্রতিনিধি কি? আমি এখানে স্ব করা যাচ্ছে না. এবং আমরা দেখতে যাচ্ছেন কি যে পরে মানে. তাই আমরা এখানে মূলত তৈরি করেছেন একটি নির্দিষ্ট উদাহরণস্বরূপ একটি UI 'তে সতর্কতা বলা দেখুন. একটি UI 'তে সতর্কতা দেখুন মূলত কি আপনি প্রত্যেক সময় কিছু পপ দেখতে ইনপুট জন্য অনুরোধ জানানো হবে এবং আপ, আপনি চেষ্টা করছেন কি ঘটবে যখন মত একটি অ্যাপ্লিকেশন দোকান উপর কিছু ক্রয়. যে উপরন্তু, আপনি পরে এটি তৈরি, আমরা শুধু সতর্কতা প্রদর্শন করুন. ঠিক আছে, শুধু দ্রুত যাক পরীক্ষা যে কাজ বা না করবে না. এটা খুব শান্ত. এখন এর আসলে একটি তৈরি করা যাক UI 'তে সতর্কতা জন্য ইনপুট ক্ষেত্র. এই যে আমরা তা করতে হয়. এবং আমরা একটি থাকতে হবে সতর্কতা জন্য ইনপুট দেখুন. খুব শান্ত. এর মাত্র 10 বলে. এটা ঠিক কিছু করছেন না এখন কল আসলে কারণ মারিও নির্বাহ জন্য পরিবর্তন করা হয়নি. তাই এই সামান্য পরিণত হয়েছে বিট অদ্ভুত যখনই কারণ আমরা যখনই আমরা নিচে একটি বাটন টিপুন সতর্কতা দৃশ্যে একটি বাটন টিপুন, কিছু ঘটতে উচিত কিন্তু এটা ঘটবে না. আমরা যে কিভাবে বললেন? কিভাবে আমরা একটি ব্যবহারকারী জানি যে একটি সতর্কতা প্রদর্শন বরখাস্ত করেছে এবং ইতিমধ্যে, কারণ, একটি সংখ্যা প্রবেশ ডান এখন আসলে কিছুই ঘটছে. হ্যাঁ, আপনি অনুমিত হতে পারে এটা ঠিক, প্রতিনিধি দল. তাই সব ছাড়াও এই ঘোষণা, আমরা একটি নতুন প্রতিনিধি দল যোগ করার জন্য প্রয়োজন এটি UI 'তে সতর্কতা দেখুন প্রতিনিধি বলা হয়. প্রতি একক যাতে মিথষ্ক্রিয়া বা ঘটনা আমরা আছে চলুন যে UI 'তে সতর্কতা সঙ্গে পরিচালনা করা যাচ্ছে পাশাপাশি আমাদের বর্গ দ্বারা. সুতরাং যে ছাড়াও, হবে সূচক এ সতর্কতা View ক্লিক করুন বাটন ক্লিক করুন. এই পৌঁছেছেন হয়. আমরা যে ক্ষেত্রে আগে থেকেই তাই আমরা একটি প্রোটোকল খুঁজে পাওয়া যায় নি যে যখন ঘটনা হ্যান্ডেল করা হবে আমরা সম্পন্ন বাটন ক্লিক করুন সতর্কতা দেখুন. তাই প্রত্যেক সময় আমরা বরখাস্ত সতর্কতা দেখুন, এই হওয়া উচিত নয়. আমাকে শুধু খুব দ্রুত এটা পরীক্ষা করা যাক. ভাল প্রকৃতপক্ষে, আমরা এখানে পৌঁছেছেন. তাই এখানে, আমরা কি না করবে না আসলে আসলে পেতে সুতরাং আমরা খুঁজে পেতে চান the-- পেতে আমরা পূর্বে আছে যে টেক্সট সতর্কতা দৃশ্যে প্রবেশ করে. এবং টেক্সট উপর ভিত্তি করে, আমরা করছি মারিও প্রদর্শন করতে যাচ্ছে. এটি খুব দ্রুত সক্রিয় আউট এটা আসলে কাজ করে বা যদি না. যে ক্ষেত্রে, আমরা ইনপুট যদি, আমরা 10 দেখতে পাবেন, 10, এর কথা বলা যাক. খুব ভাল, আমরা এখানে একটি সংখ্যা আছে. এটি বেশ ভাল. এখন শেষ ধাপে তাই be-- হবে শেষ ধাপে আমরা এখন যা করতে হবে শুধু একটি সঙ্গে মারিও কল করা হয় স্তর ইনপুট উপর ভিত্তি করে যে আমরা সতর্কতা ভিউ মধ্যে করা আছে. সুতরাং আমরা রূপান্তর করতে হবে প্রয়োজন iOS মধ্যে এই পংক্তিটি. স্ট্যাটিক ওভারফ্লো খুব সন্ত্রস্ত. এবং তারপর আমরা শুধু স্ব কল marioWithLevels মান. এর যে দেখতে দিন আসলে কাজ না. আমরা ইতিমধ্যে একটি পিরামিড দেওয়া করছি. এর উচ্চতা পরিবর্তন করার চেষ্টা করুন. এটা আসলে কাজ করে. এটি বেশ শান্ত. যে এখন আপনি করতে পারেন তাই শুধু ইনপুট আপনার কাঙ্ক্ষিত মান. এর মাত্র চার বলে. যে বেশ ভয়ঙ্কর. তাই এই মূলত একটি সত্যিই দ্রুত উদাহরণ জন্য কোড একটি প্রকল্প তৈরি করতে কিভাবে এবং সত্যিই দ্রুত টেলিগ্রাম কিভাবে কিছু সত্যিই সহজ ঘটনা এবং ফাংশন. তাই উৎস যাচ্ছে পরে অনলাইন করা. আপনি আগ্রহী হলে তাই প্রয়োজন iOS মারিও কিভাবে কাজ করে এ, আমি ঠিক একই করা যাচ্ছে না পরে হয় CS50 ওয়েবসাইট সম্মুখের প্রকল্প. আমরা মূলত সঙ্গে সম্পন্ন গ্রীষ্ম, আমরা এবং শেষ করার আগে আমি শুধু আপনাকে বলছি নির্দেশ করতে চান কিছু সত্যিই ভয়ঙ্কর সম্পদ যে অনলাইনে পাওয়া যাচ্ছে. একথাও ঠিক যে অ্যাপল ডকুমেন্টেশন খুব সহায়ক হতে যাচ্ছে. কিন্তু যে ছাড়াও, আমি বিশেষ করে চার উৎস, কোড স্কুল সুপারিশ গাছ ঘর, AppCoda এবং WWDC ভিডিও. কোড স্কুল এবং গাছ ঘর দুই অনলাইন Educating ওয়েবসাইট, যা বিশেষভাবে নজর দিতে সফটওয়্যার ইঞ্জিনিয়ারিং উপর. বিশেষ করে জেলা কোড স্কুল জন্য, তারা iOS উপর সত্যিই ভাল টিউটোরিয়াল আছে. যে জন্য এটি একটি সত্যিই দ্রুত উদাহরণ. তারা আসলে একটি সত্যিই cute-- তৈরি যে সামান্য চতুর আইফোন তাকান ওইখানে ফুলবাবু, এটা বেশ ভালো. এবং উপায় তারা উদ্দেশ্য ব্যাখ্যা সি সিনট্যাক্স পুরোপুরি স্পষ্ট. বৃক্ষ ঘর একই. এবং AppCoda একটি ফোরাম. এটা আসলে চালানো হয় যে একটি ব্লগ এর একটি সত্যিই অভিজ্ঞ উদ্দেশ্য সি দ্বারা প্রোগ্রামার. এবং AppCoda সমস্ত টিউটোরিয়াল হয় বেশ ছোট এবং বাস্তবায়ন করা সহজ, অত্যন্ত বাঞ্ছনীয়. এবং যদি আপনি একটি ডেভেলপার করছি, স্পষ্টভাবে দেখতে যান কিভাবে WWDC ভিডিও যেখানে আপনি করতে পারেন সর্বশেষ iOS প্রোগ্রামিং সম্পর্কে জানতে কৌশল, API গুলি এবং লাইব্রেরী. সুতরাং যে প্রায় কাছাকাছি সেমিনার জন্য এটি. তাই আপনাকে অনেক ধন্যবাদ. এবং আমি আপনি মজা আছে আশা করি আপনার নিজস্ব iOS অ্যাপ্লিকেশন তৈরি.