আমি অবজেকটিভ সি শিখছি এবং @ সিম্বলটিতে ঝাঁপিয়ে পড়ছি। এটি বিভিন্ন পরিস্থিতিতে ব্যবহৃত হয়, উদাহরণস্বরূপ স্ট্রিংয়ের শুরুতে বা অ্যাকসেসর পদ্ধতি সংশ্লেষ করতে।
@ প্রতীকটির উদ্দেশ্য-সি এর অর্থ কী?
আমি অবজেকটিভ সি শিখছি এবং @ সিম্বলটিতে ঝাঁপিয়ে পড়ছি। এটি বিভিন্ন পরিস্থিতিতে ব্যবহৃত হয়, উদাহরণস্বরূপ স্ট্রিংয়ের শুরুতে বা অ্যাকসেসর পদ্ধতি সংশ্লেষ করতে।
@ প্রতীকটির উদ্দেশ্য-সি এর অর্থ কী?
উত্তর:
@
চরিত্র, C অথবা সি ++ শনাক্তকারী ব্যবহার করা হয় না তাই এটি ভাবে উদ্দেশ্য সি ভাষা কীওয়ার্ড পরিচয় করিয়ে দিতে ব্যবহৃত হচ্ছে হবে এমন অন্যান্য ভাষায় 'কীওয়ার্ড সঙ্গে দ্বন্দ্ব নেই। এটি ভাষার "উদ্দেশ্যমূলক" অংশটি অবাধে সি বা সি ++ অংশের সাথে সংযোগ স্থাপনে সক্ষম করে।
সুতরাং খুব অল্প ব্যতিক্রম ব্যতীত যে কোনও সময় আপনি @
কিছু উদ্দেশ্য-সি কোডে দেখেন , আপনি সি বা সি ++ কনস্ট্রাক্টের পরিবর্তে অবজেক্টিভ-সি নির্মাণের দিকে তাকিয়ে রয়েছেন।
প্রধান ব্যতিক্রম আছে id
, Class
, nil
, এবং Nil
, সাধারণত ভাষা কীওয়ার্ড হিসাবে গণ্য হয় এমনকি যদিও তারা একটি থাকতে পারে typedef
বা #define
তাদের পেছনে। উদাহরণস্বরূপ, সংকলক প্রকৃতপক্ষে id
পয়েন্টার ধরণের রূপান্তর বিধিগুলির ক্ষেত্রে বিশেষভাবে আচরণ করে যা এটি ঘোষণার ক্ষেত্রে প্রযোজ্য, পাশাপাশি জিসি রাইট বাধা তৈরি করতে হবে কিনা সে সিদ্ধান্তের ক্ষেত্রেও।
অন্যান্য ব্যতিক্রম আছে in
, out
, inout
, oneway
, byref
, এবং bycopy
; এগুলি ডিস্ট্রিবিউটেড অবজেক্টগুলিকে আরও দক্ষ করার জন্য পদ্ধতি প্যারামিটার এবং রিটার্নের ধরণের স্টোরেজ ক্লাস টিকা হিসাবে ব্যবহার করা হয়। (তারা রানটাইম, যা কীভাবে সেরা ধারাবাহিকভাবে করার জন্য একটি লেনদেনের নির্ধারণ তাকান পারেন থেকে পাওয়া পদ্ধতি স্বাক্ষর অংশ হয়ে।) এছাড়া মধ্যে বৈশিষ্ট্যাবলী হয় @property
ঘোষণা, copy
, retain
, assign
, readonly
, readwrite
, nonatomic
, getter
, এবং setter
; এগুলি কেবলমাত্র একটি @property
ঘোষণার বৈশিষ্ট্য বিভাগের মধ্যে বৈধ ।
@
।
@
চরিত্র, C দ্বারা অব্যবহৃত ছিল তাই এটি বিকল্প পার্সিং যে বিদ্যমান সি কোড সহ 100% সামঞ্জস্য সংরক্ষিত করার জন্য একটি সুবিধাজনক "পালাবার ডিম পাড়া" ছিল।
থেকে @ প্রতীক: উদ্দেশ্য সি টিউটোরিয়াল , কারণ বিভিন্ন কীওয়ার্ড সামনে হল:
@ ব্যবহারের ফলে একটি বিদ্যমান সি সংকলকটিতে একটি উদ্দেশ্য-সি সংকলকটি বোল্ট করা আরও সহজ হওয়া উচিত। @ স্ট্রিং আক্ষরিক ব্যতীত সি-এর কোনও প্রসঙ্গে বৈধ নয়, তাই টোকেনাইজার (সংকলকটির প্রথম এবং সাধারণ পদক্ষেপ) কেবল একটি স্ট্রিং ধ্রুবকের বাইরে @ অক্ষর সন্ধানের জন্য সংশোধন করা যেতে পারে (টোকেনাইজার স্ট্রিং লিটারালগুলি বোঝে , সুতরাং এটি আলাদা করার মতো অবস্থানে রয়েছে)। @ টোকনাইজারের মুখোমুখি হওয়ার সাথে সাথে বাকী সংকলকটি "উদ্দেশ্য-সি মোডে" রাখবে। (উদ্দেশ্য-সি পার্সার যখন উদ্দেশ্য-সি কোডের শেষটি সনাক্ত করে তখন নিয়মিত সি মোডে সংকলকটি ফেরত দেওয়ার জন্য দায়বদ্ধ)।
এছাড়াও যখন স্ট্রিং আক্ষরিকের সামনে দেখা যায়, এটি সিতে 'চর *' না দিয়ে এনএসএসআরটিং করে
ম্যাক্রামারগুলি থেকে : অবজেক্ট-সি টিউটোরিয়াল , যখন স্ট্রিংয়ের সামনে আক্ষরিক:
এছাড়াও @ "" এনএসএস স্ট্রিং লিটারেল রয়েছে। এটি এনএসএসস্ট্রিংয়ের + স্ট্রিংউইথএফ 8 স্ট্রিং পদ্ধতির জন্য মূলত শর্টহ্যান্ড।
@ সি স্ট্রিংগুলিতে ইউনিকোড সমর্থন যুক্ত করে।
ম্যানুয়াল থেকে :
উদ্দেশ্য-সি ফ্রেমওয়ার্কগুলি সাধারণত সি-স্টাইলের স্ট্রিং ব্যবহার করে না। পরিবর্তে, তারা এনএসএসস্ট্রিং অবজেক্ট হিসাবে চারপাশে স্ট্রিংগুলি পাস করে।
এনএসএসটিং ক্লাসটি স্ট্রিংগুলির জন্য একটি অবজেক্ট র্যাপার সরবরাহ করে যা আপনি প্রত্যাশা করে যে সমস্ত সুবিধা রয়েছে যার মধ্যে রয়েছে স্বেচ্ছাসেবী দৈর্ঘ্যের স্ট্রিংগুলি সংরক্ষণের জন্য অন্তর্নির্মিত মেমরি পরিচালনা, ইউনিকোডের জন্য সমর্থন, প্রিন্টফেল-স্টাইল বিন্যাসের ইউটিলিটিস এবং আরও অনেক কিছু। এই জাতীয় স্ট্রিং সাধারণত ব্যবহৃত হলেও, অবজেক্টিভ-সি ধ্রুবক মানগুলি থেকে এনএসএসস্ট্রিং অবজেক্ট তৈরি করার জন্য একটি শর্টহ্যান্ড স্বরলিপি সরবরাহ করে। এই শর্টহ্যান্ডটি ব্যবহার করতে, আপনাকে যা করতে হবে তা হল নীচের উদাহরণগুলিতে যেমন দেখানো হয়েছে তেমন @ প্রতীক সহ একটি স্বাভাবিক, ডাবল-কোটড স্ট্রিংয়ের আগে
NSString *myString = @"My String\n"; NSString *anotherString = [NSString stringWithFormat:@"%d %@", 1, @"String"];
@
ব্যবহৃত হয় তার একমাত্র উদাহরণ । আমি এই জাতীয় কোডটি দেখছি: mapperOptions = @{ kSTMapperVolumeResolutionKey: @(volumeResolution),
...