آموزش آبجکتیو سی (Objective-C)

آموزش آبجکتیو سی

آنچه در این صفحه می خوانید:

معرفی آبجکتیو سی (Objective-C)

Objective-C یک زبان برنامه نویسی همه منظوره و هدفمند است که پیام های سبک Smalltalk را به زبان برنامه نویسی C اضافه می کند. این زبان اصلی برنامه نویسی تا معرفی سوئیفت (Swift) در سال 2014 بود که توسط اپل برای macOS، آی او اس (iOS) و رابط های برنامه نویسی برنامه مربوطه (API)، Cocoa و Cocoa Touch پشتیبانی شد.

Objective-C زبان ساده و اصلی برنامه نویسی نوشتن نرم افزار برای OS X و iOS می باشد. این یک نسخه از زبان برنامه نویسی سی است و قابلیت های شی گرا و اجرا پویا را فراهم می کند. تفاوت اصلی آبجکتیو سی با دیگر زبان ها در Syntax، مکانیزم مدیریت حافظه و اسامی مفاهیم آن است. با این زبان فقط می توان برای اپل برنامه نوشت و با ابزار ایکس کد برای آن کدنویسی کرد. اکثر دستورات این زبان برگرفته از زبان سی می باشد و تنها قابلیت ارسال پیغام به آن اضافه شده است.

زبان Objective-C اول و مهمتر از همه، یک زبان شی گرا است. نوع عملکرد که در Cocoa framework قرار گرفته تنها می تواند از طریق تکنیک های شی گرا تحویل داده شود. به این دلیل که Objective-C فرمت استاندارد ANSI C است، برنامه های C موجود را می توان با استفاده از فریمورک های نرم افزاری بدون تغییر توسعه اصلی آنها، سازگار کرد. از آنجا که Objective-C شامل C می شود، هنگامی که در Objective-C کار می کنید، تمام مزایای C را دریافت می کنید.

در مقایسه با دیگر زبان های شی گرا بر اساس سی، Objective-C بسیار پویاتر است. کامپایلر اطلاعات زیادی در مورد خود اشیا برای استفاده در ران تایم حفظ می کند. تصمیماتی که ممکن است در زمان کامپایل صورت گیرد، می تواند تا زمان اجرای برنامه به تعویق بیفتد. قابلیت دینامیک به برنامه های Objective-C انعطاف پذیری و قدرت غیر عادی می بخشد.

تاریخچه آبجکتیو سی (Objective-C)

Objective-C در درجه اول توسط Brad Cox و Tom Love در اوایل دهه 1980 در شرکت تولیدی محصولات بین المللی ایجاد شد. پیش از ایجاد شرکت خود، هر دو در سال 1981 در مرکز فناوری برنامه نویسی شرکت ITT شرکت SmallTalk، معرفی شدند. Cox تحت تأثیر مشکلات قابلیت استفاده مجدد در طراحی و برنامه نویسی نرم افزار قرار گرفت. او فهمید که زبانی مانند Smalltalk در ایجاد محیط های توسعه برای توسعه دهندگان سیستم در ITT بسیار ارزشمند خواهد بود. با این حال، او و Tom Love نیز تشخیص دادند که سازگاری با C در محیط مهندسی مخابرات ITT از اهمیت بالایی برخوردار است.

Love و Cox سرانجام PPI را برای تجاری کردن محصول خود تشکیل دادند که یک کامپایلر Objective-C را با کتابخانه های کلاس همراه کرد. در سال 1986، Cox توضیحات اصلی Objective-C را به شکل اصلی خود در کتاب برنامه نویسی شی گرا، یک رویکرد تکاملی منتشر کرد. اگرچه وی مراقب این نکته بود كه مسئله استفاده مجدد بیشتر از آنچه كه Objective-C ارائه می دهد وجود دارد، این زبان اغلب ویژگی مقایسه شده با ویژگی را با سایر زبان ها پیدا می كرد.

ویژگی های آبجکتیو سی (Objective-C)

کلاس ها آبجکت هستند

هر کلاس نمونه ای از یک کلاس متا است که به طور خودکار توسط زمان اجرا ایجاد و مدیریت می شود. ما می توانیم متد کلاس را تعریف کنیم، کلاس ها را به عنوان آرگومان بگذرانیم، آنها را در مجموعه ها قرار دهیم و مواردی از این دست. برای ایجاد یک شی، ما فقط پیامی را به کلاس مورد نظر برای آن ارسال می کنیم. نیازی به اختراع سیستم "کارخانه" نیست. نیازی به سازوکار سازنده خاص در سطح زبان نیست. این به ساده نگه داشتن زبان کمک می کند. و به هر حال، کلاس های فراشناختی نیز آبجکت هستند!

تایپ پویا

همانطور که در روبی، پایتون، Smalltalk، Groovy ... بسیار مفید است زیرا ما همیشه از قبل نمی دانیم اشیاء ما در زمان اجرا چه می شوند. استفاده از تایپ پویا در Objective-C ساده است. به عنوان مثال، این متغیر را اعلام می کند که می تواند یک شیء را در خود جای دهد:

id myObject;

تایپ استاتیک اختیاری

با این وجود، Objective-C از تایپ استاتیک نیز پشتیبانی می کند. این متغیر را اعلام می کند که می تواند یک شیء از کلاس (یا زیر کلاس) NSView را نگه دارد:

NSView * myObject؛

دسته بندی ها

دسته بندی ها به ما اجازه می دهند متد های جدیدی را تعریف کنیم و آنها را به کلاس هایی اضافه کنیم که کد منبع برای آنها نداریم. این امر باعث می شود که کلاس ها بدون توسل به ساب کلاس انجام شود. برای تطبیق کلاس های موجود با الزامات فریمورکی که می خواهیم از آنها استفاده کنیم یا ایجاد کنیم، بسیار مفید است.

ارسال پیام

ما با ارسال پیام به آنها با اشیاء در تعامل هستیم. اغلب، گیرنده پیام متدی را خواهد داشت که به طور مستقیم با پیام مطابقت دارد (یعنی همان نام را دارد، یا به تعبیری Objective-C همان انتخاب کننده). در این حالت، روش فراخوانی می شود. اما این تنها نتیجه ممکن نیست، زیرا یک شیء می تواند مسئولیت رسیدگی به پیام را به روش های دیگر مانند انتقال آن به یک شیء دیگر، پخش آن به تعدادی از اشیاء، درون یابی آن و اعمال منطق دلخواه و غیره انتخاب کند.

مزایا و معایب آبجکتیو سی (Objective-C)

مزایا:

  • قابلیت همکاری با ++C و ++Objective C
  • خصوصیات مؤثر مانند متد swizzling
  • پشتیبانی قابل اطمینان برای کد نویسی فریمورک های باینری.

معایب:

  • از آنجا که Objective-C در بالای C تشکیل شده است، به مکان یابی نیاز دارد. کلیه کلاس ها در یک برنامه Objective-C باید در گلوبال بی نظیر باشد.
  • نشانگرهای خاص.
  • امکان ارسال پیام بر روی یک زیرو آبجکت و عدم وجود تایپ دقیق، باعث بروز اشکالات می شود که ردیابی و رفع آن دشوار است.

مثال کد آبجکتیو سی (Objective-C)

مثال ساده Hello World!  در آبجکتیو سی به این صورت است:

#import <Foundation/Foundation.h>

int main (int argc, const char * argv[]) { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

NSLog (@"hello world"); [pool drain]; return 0; }

آیا این نوشته را دوست داشتید؟
teamtreehouse-displaying-api-data-with-collection-views-in-objective-c

نمایش API Data با Collection Views در Objective-C


در این دوره یاد می گیریم که چگونه با ایجاد برنامه ای برای مرور Gif ها از Giphy API، داده ها را در Collection Views نمایش دهیم. علاوه بر این، اصول اولی...

1399/02/02 178 بازدید
teamtreehouse-build-a-simple-iphone-app-with-objective-c

آموزش ساخت اپلیکیشن ساده آیفون با Objective-C


ساخت اپلیکیشن Fun Facts به شما می آموزد چگونه از زبان Objective-C، ایکس کد و ابزارهای Interface Builder استفاده کنید. همچنین در مورد مفاهیم اصلی مانند...

1398/10/27 449 بازدید
teamtreehouse-build-a-playlist-browser-with-objective-c

آموزش ساخت Playlist Browser با Objective-C


در این پروژه، ما قصد داریم یک Playlist Browser سرگرم کننده را در Objective C بسازیم و در مورد دو جنبه مهم یک اپلیکیشن iOS - ناوبری و نحوه انتقال اطلاع...

1398/10/21 362 بازدید
teamtreehouse-objective-c-for-swift-developers2

آموزش Objective-C برای توسعه دهندگان سوئیفت


در این دوره قصد داریم با استفاده از سوئیفت به عنوان پایه ما، از طریق زبان Objective-C به شما آموزش دهیم. با پایان این دوره، شما می توانید با استفاده ا...

1398/10/17 404 بازدید
teamtreehouse-objective-c-basics

آموزش مبانی Objective-C


این دوره بر روی زبان و سینتکس Objective-C و همچنین برخی مفاهیم اساسی برنامه نویسی متمرکز خواهد شد. همچنین انواع داده های اصلی، مانند NSString ،float ،...

1398/10/15 428 بازدید
teamtreehouse-object-oriented-objective-c

آموزش Objective-C شی گرا


در ادامه ی دوره مبانی Objective-C، شما باید با مفاهیم مهم مانند کلاس ها، آبجکت ها، مدیریت حافظه، pointers و غیره آشنا شوید. این دوره برای توسعه iOS با...

1398/10/14 391 بازدید
teamtreehouse-displaying-api-data-with-collection-views-in-objective-c-course

دوره نمایش API Data با Collection Views در Objective-C


در این دوره با نحوه نمایش داده در Collection Views با ایجاد اپلیکیشن برای انتخاب Gifs از Giphy API آشنا می شوید. همچنین اصول اولیه شبکه سازی، دانلود غ...

1397/09/09 607 بازدید
teamtreehouse-build-a-playlist-browser-with-objective-c-course

آموزش ایجاد مرورگر Playlist با Objective-C 


در این دوره با کار با چندین view controllers و انتقال بین آنها، استفاده از segues و کنترلر های ناوبری، مدل سازی داده و Auto Layout و غیره آشنا می شوید...

1397/06/01 596 بازدید
teamtreehouse-build-a-simple-iphone-app-with-objective-c-course

آموزش ساخت اپلیکیشن ساده iPhone با Objective-C


ساخت اپلیکیشن Fun Facts به شما نحوه استفاده از زبان Objective-C و ابزار Xcode و Interface Builder را آموزش خواهد داد. همچنین با مفاهیم اصلی نظیر views...

1397/05/28 764 بازدید
teamtreehouse-objective-c-basics-course

آموزش اصول و مبانی Objective-C


این دوره بر زبان و سینتکس Objective-C و برخی مفاهیم برنامه نویسی اساسی متمرکز است. ما انواع داده های اولیه مانند NSString، float، int و bool را پوشش خ...

1397/05/04 673 بازدید
teamtreehouse-object-oriented-objective-c-course

آموزش شی گرایی در Objective-C


در این دوره با مبانی Objective-C و مفاهیمی مانند کلاس ها، اشیاء، مدها، مدیریت حافظه، اشاره گرها و موارد دیگر آشنا می شوید. این دوره یک دوره ضروری برای...

1397/05/04 714 بازدید
آموزش-مقدماتی-objective-c

آموزش مقدماتی Objective-C


در این دوره آموزشی از شرکت TreeHouse شما با زبان برنامه نویسی Objective-c آشنا می شوید. این دوره برای برنامه نویسان تازه کار مناسب است.البته دوره های...

1397/04/14 2321 بازدید
آموزش-برنامه-نویسی-ios-از-treehouse

آموزش برنامه نویسی iOS از TreeHouse


این دوره آموزشی نحوه طراحی اپلیکیشن های iOS را به صورت کامل آموزش می دهد. در ابتدای دوره شما با برنامه نویسی به زبان Objective-C آشنا می شوید. در فص...

1397/04/14 2815 بازدید
learning-objective-c-in-one

آموزش کامل Objective-C در یک ویدئو


زبان Objective-C یک نسخه از زبان برنامه نویسی C است و قابلیت های شی گرا و اجرا پویا را فراهم می کند. Objective-C زبان ساده و اصلی برنامه نویسی نوشتن ن...

1397/02/06 818 بازدید
wintellectnow-building-your-first-ios-app-with-objective-c

آموزش ساخت اولین اپلیکیشن iOS با Objective-C


با استفاده از Xcode و Objective-C، جهان هیجان انگیز توسعه نیتیو iOS را کاوش کنید. در این دوره با دانلود و نصب Xcode، نحوه ایجاد رابط کاربری ساده، روید...

1396/12/25 855 بازدید
wintellectnow-introduction-to-ios-development-with-xamarin-and-c

آموزش توسعه iOS با زامارین و سی شارپ


زامارین در توسعه موبایل نقش مهمی دارد چرا که به شما اجازه می دهد اپلیکیشن های تلفن همراه چندسکویی را با استفاده از ابزار و زبان هایی که قبلا با آنها آ...

1396/12/19 1351 بازدید
wintellectnow-ios-development-with-objective-c-now-youre-serious

آموزش توسعه iOS با Objective-C 


در این دوره با حلقه رویداد اپلیکیشن چرخه راه اندازی و سایر مفاهیم حیاتی برای توسعه iOS  آشنا می شوید. همچنین یک برنامه لیست خرید ساده با استفاده از UI...

1396/12/17 567 بازدید
udemy-ios-for-beginners-how-to-create-your-own-app

ساخت اپلیکیشن iOS9 برای تازه کاران


  در این آموزش تصویری با نحوه ایجاد یک اپلیکیشن ساده برای iOS9 با استفاده از Xcode و Objective-C آشنا می شوید. این دوره آموزشی محصول موسسه Udem...

1396/01/27 1040 بازدید
دوره-کامل-برنامه-نویسی-ios

دوره کامل برنامه نویسی iOS


در این آموزش تصویری برنامه نویسی iOS را به صورت کامل فرا میگیرید. این دوره آموزش محصول موسسه Udemy است و نحوه ساخت اپلیکیشن های iOS را به صورت عملی...

1395/11/18 5971 بازدید