ئەم فێرکاریە لە فێرکاریەکانی ئەپڵ بۆ پەرەپێدەرانی وەرگیراوە.
ئۆبجیکتیڤ سی (ئ.س) زمانی سەرەکی نوسینی پرۆگرامە بۆ سیستمی OS X و iOS. بۆخۆشی گروپێکی گەورەترە لە زمانی پرۆگرامکردنی سی و توانای دابینکردنی پرۆگرامکردنی هەیە لەسەر شێوازی تەنخواز، Object Oriented. مەبەستمان لە وشەی تەنخواز بە کوردی ئەو شێوازی پرۆگرامکردنە کە پرۆگرامی نوسراو زۆرتر لە شت یان تەندا جۆر بکەین و بەکاریان بهێنین. ئەم فێرکاریە جێگای ڕوونکردنەوەی زیاتری تەنخوازی نیە.
ئۆبجێکتیڤ سی، دەق، جۆرە سەرەتاییەکان و کۆنترۆڵی ئەنجامدانەکانی زمانی سی وەرگرتوە و شێوازی دەق syntaxی پێناسەی پۆل class و مێتۆد methodەکانی بۆ زیاد کراوە. هەروەها لە ئاستی زمانەکەشدا پشتیوانی لە ڕێکخستنی گراف زیادکراوە زۆرێک کرداری تر کە لە سیدا لە کاتی کۆمپایڵکردندا ئەنجام ئەدران پشتگوێخراوە بۆ کاتی خستنەگەڕ.
پێناسەکردنی پۆل (class)
پێناسەی زمانەکە درێژتر و بابەتەکە یەکجار فراوانە. مەبەست لەم فێرکاریە نیشاندانی سەرەتای نوسینی پرۆگرامی سادەیە بۆیە ئەچینە سەر نمونە. پۆل classێک بەناوی SimpleClass لە ئ.س بەم شێوەیە دروست ئەکرێت:
@interface SimpleClass : NSObject
@end
لە ئ.س لەبەر ئەوەی زۆربەی بەشەکانی پرۆگرام جۆرێکن لە پۆل، بۆیە هەموو پۆلێکیش بۆخۆی سەربە پۆلی سەروو هەموانن کە پۆلی NSObject خۆیەتی. بۆیە لە پێناسەکەی سەرەوە SimpleClass : NSObject نوسراوە. پۆلەکەش بە زاراوەی interface بە پێشگری ئەت @ دروست ئەکرێ و بە زاراوەی endیش کۆتایی دێت.
لە هەموو شتێک گرنگترە وەک لە زمانی C++دا ئەکرێ هەموو پۆلێک لە دوو پەڕگەی جیاوازدا هەڵگرین کە یەکێکیان سەرپەڕ و ئەویتریش کۆدەکە لەخۆی ئەگرێ. بۆ نمونە پۆلی Person ئەکرێ لە دوو پەڕگەی Person.h و پەڕگەی Person.mدا هەڵبگیرین. لە سەرپەڕەدا پێناسە گشتیەکان و لە ناوپەڕەشدا تەواوی پرۆگرامەکە ئەنوسینەوە. دواتر ئەمە ڕوونتر ئەکەینەوە.
تایبەتمەندیەکان properties
گەر بڕیاربێ پۆلێک دروست بکەین پێناسەی مرۆڤ بکات، ئەوا پێویستمان بە دوو نوسە String ئەبێ کە پێناسەی ناو و نازناوی پێ بکەین، ئەوکاتە ئەکرێ تۆ تایبەتمەندی property بۆ پۆلەکەمان پێناسە بکەین بەم شێوەیە. هێمای * لە زمانەکانی سی و سی++دا بۆ "هێماکەر" pointer بەکاردێ کە دیسان جێگای ڕوونکردنەوە لەم فێرکاریەدا نابێتەوە.
@interface Person : NSObject
@property NSString *firstName;
@property NSString *lastName;
@end
لە دوو دەستەواژە زیادکراوەکەدا: زاراوەی property پێناسەکردنی field یان بوارێکە بۆ پۆلەکە لە زمانێکی وەک جاڤادا، لە سیدا دیسان بە تایبەتمەندی ئەناسرێت, NSStringیش بۆخۆی پۆلێکی تایبەتی زمانی ئ.س بۆ هەڵگرتنی نوسە String و هێمانی * وەک وتمان هێماکەرە کە هەموو پۆلێک لە ئ.س دا ئەبێ لەپێشی دانرێت و دواجاریش ناوی تایبەتمەندیەکە دێ کە firstName یان lastNameە. هەردوو ناوەکە بۆخۆی جۆرێک لە ستانداردی نوسینی پرۆگرامکردن لە ئ.س دا نیشان ئەدەن کە عادەتەن گۆڕاو variable ئەبێ بە پیتی بچووک دەست پێ بکات و دوای تەواوبوونی وشەیەک وشەی دوەم پیتی یەکەمی گەورەبێت واتە first+Name بەو شێوەیە.
کردار function
لە زمانی سی و زمانەکانی دیدا پێناسەکردنی کردارێک ئاسانە و بەم جۆرەیە:
void SomeFunction();
لە ئ.س دا جیاواز لە زمانەکانی تر گرنگیەکی تایبەت بە کردار دراوە. لە ئ.س دا هەمان کردار زۆر هاوشێوەیە و ئاوا پێناسە ئەکرێت:
- (void)someMethod;
لەم ناساندنە ئاسانەشدا تێبینی ئەکەین کە نیشانەی کەم/داش هەیە لەپێش کردارەکە کە بە کۆمپایڵەر (وەرگێڕ)ەکەمان ئەڵێ کە ئاگاداربە ئەمە کردارێکی نمونەیەکەی تەنە object instance method. ئیتر ئەوانی تری ئەبێ ئاشکرابێت لای فێرخواز. زاراوەی void لە زۆربەی زمانەکاندا بەهەمان شێوە بەکاردێ و مانای بەتاڵی هەیە.
دابینکردنی ناوەڕۆکی پۆل
(ئەم بابەتە لەژێر دەستکاری دایە)