প্রথমদিকে আইফোন প্রোগ্রামার হিসাবে, আইওএস 5 বা পুরানো সংস্করণ ব্যবহার করে অ্যাপ্লিকেশন লেখার জন্য সর্বোত্তম অনুশীলন কোনটি? বিশেষত, আমি কি ডেটা প্রকাশ / ধরে রাখা ব্যবহার চালিয়ে যেতে পারি, বা আমার এড়ানো উচিত? এটা কোন ব্যাপার?
প্রথমদিকে আইফোন প্রোগ্রামার হিসাবে, আইওএস 5 বা পুরানো সংস্করণ ব্যবহার করে অ্যাপ্লিকেশন লেখার জন্য সর্বোত্তম অনুশীলন কোনটি? বিশেষত, আমি কি ডেটা প্রকাশ / ধরে রাখা ব্যবহার চালিয়ে যেতে পারি, বা আমার এড়ানো উচিত? এটা কোন ব্যাপার?
উত্তর:
এটা আপনার উপর নির্ভর করছে. আপনি এআরসি (অটোমেটিক রেফারেন্স কাউন্টিং) ব্যবহার করে অ্যাপ্লিকেশন লিখতে পারেন এবং আপনার কোডটি সক্ষম হওয়া অ্যাপ্লিকেশনগুলিকে আইওএস 4 এ চালানোর অনুমতি দিতে Xcode "আঠালো কোড" লিখবে, কোনও পরিবর্তন প্রয়োজন নেই। তবে নির্দিষ্ট কিছু কাজ করবে না এবং লক্ষণীয়ভাবে আপনি যে লাইব্রেরিগুলি ব্যবহার করতে চান সেগুলি (কখনও কখনও) অসংখ্য ত্রুটি ছুঁড়ে ফেলবে এবং বিকাশকারীরা এআরসি এর সাথে সামঞ্জস্যপূর্ণ কোনও আপডেট প্রকাশ না করা পর্যন্ত আপনি সেগুলি ব্যবহার করতে পারবেন না।
সম্পাদনা : আমি সম্প্রতি আবিষ্কার করেছি যে আপনি প্রতি ফাইলের ভিত্তিতে আরসি বন্ধ করতে পারেন। দেখুন pixelfreak এর উত্তর । সুতরাং, আমার পরামর্শ এখনও স্থায়ী, তবে এখন তৃতীয় পক্ষের লাইব্রেরিগুলিকে এআরসি দিয়ে কাজ করার জন্য আপডেট করার দরকার নেই।
নির্দিষ্ট ফাইলগুলির জন্য আরসি থেকে বেরিয়ে আসার বিষয়ে অ্যাপল যা বলেছে তা এখানে:
আপনি যখন এআরসি ব্যবহারের জন্য কোনও প্রকল্প স্থানান্তর করেন, তখন -ফোবজক-আর্ক সংকলক পতাকাটি সমস্ত উদ্দেশ্য-সি উত্স ফাইলগুলির জন্য ডিফল্ট হিসাবে সেট করা থাকে। আপনি সেই শ্রেণীর জন্য -fno-objc-arc সংকলক পতাকা ব্যবহার করে একটি নির্দিষ্ট শ্রেণীর জন্য ARC অক্ষম করতে পারেন। এক্সকোডে, টার্গেট বিল্ড ফেজস ট্যাবে, উত্স ফাইলের তালিকাটি প্রকাশ করতে কমপাইল উত্স গ্রুপটি খুলুন। আপনি যে ফাইলটির জন্য পতাকা সেট করতে চান তার ডাবল-ক্লিক করুন, পপ-আপ প্যানেলে -fno-objc-arc প্রবেশ করুন, তারপরে সম্পন্ন ক্লিক করুন।
সম্পূর্ণ রূপান্তর গাইড এখানে দেখুন ।
-fno-objc-arc
JSONKit
উদাহরণস্বরূপ, নিন । এটিআরসি চেকের মাধ্যমে চালানোর চেষ্টা করুন। আপনি যা বলতে চাইছেন তা আপনি দেখতে পাবেন। ;)
পৃথক ফাইলগুলিতে কীভাবে আরসি বন্ধ করা যায় সে সম্পর্কে এখনও কারও আগ্রহী, আমি যা করেছি তা এখানে:
Build Phases > Compile Sources
আমি জানি না এটি প্রস্তাবিত উপায় কিনা তবে এটি আমার পক্ষে কার্যকর।
PS: আমি এই তথ্যটি এখানে clang.llvm.org থেকে সংগ্রহ করেছি যা সর্বজনীনভাবে অ্যাক্সেসযোগ্য, এটি এনডিএর অধীনে নয়।
আইওএস 5 এখনও একটি এনডিএর অধীনে রয়েছে এবং তারা সর্বজনীন সংস্করণ প্রকাশ না করা পর্যন্ত সম্ভবত এটি থাকবে। আপনার যদি বিকাশকারী অ্যাকাউন্ট থাকে তবে অ্যাপল বিকাশকারী ফোরামে যান এবং সেখানে জিজ্ঞাসা করুন।
পূর্ববর্তী সংস্করণগুলির জন্য, আপনাকে রেফারেন্স গণনা করতে হবে এবং সেই অনুসারে ধরে রাখতে হবে এবং ছেড়ে দিতে হবে। পরীক্ষা করে দেখুন মেমরি ম্যানেজমেন্ট গাইড ।
সম্পাদনা করুন: স্বয়ংক্রিয় রেফারেন্স গণনা এবং সর্বজনীন আইওএস 5 পৃষ্ঠার একটি উদ্ধৃতি সম্পর্কিত একটি সর্বজনীন বৈশিষ্ট এখানে :
উদ্দেশ্য-সি এর জন্য স্বয়ংক্রিয় রেফারেন্স কাউন্টিং (এআরসি) মেমরি ম্যানেজমেন্টকে সংকলকের কাজ করে তোলে of নতুন অ্যাপল এলএলভিএম সংকলকটি দিয়ে এআরসি সক্ষম করে, ক্রাশ এবং মেমরি ফাঁস হ্রাস করার সময় আপনার কখনই পুনরুদ্ধার বা পুনরায় প্রকাশের দরকার হবে নাটকীয়ভাবে বিকাশ প্রক্রিয়াটিকে সরল করে তোলা। সংকলকটি আপনার অবজেক্টগুলির একটি সম্পূর্ণ উপলব্ধি রয়েছে এবং প্রতিটি বস্তু এটি ব্যবহার করা হয় না তা তাত্ক্ষণিকভাবে প্রকাশ করে, সুতরাং অ্যাপসটি পূর্বের মতো স্পষ্টভাবে চালিত হয়, পূর্বাভাসযোগ্য, মসৃণ পারফরম্যান্স সহ।
এই মুহুর্তে বিশদগুলি হালকা / এনডিএর অধীনে, তবে অ্যাপল আইওএস 5-এ স্বয়ংক্রিয় রেফারেন্স কাউন্টিং (এআরসি) প্রয়োগ করেছে, এখানে বিস্তারিত হিসাবে: http://developer.apple.com/technologies/ios5/
আপনি যদি আইওএস 5 এসডিকে দিয়ে এক্সকোড 4 এ একটি নতুন অ্যাপ্লিকেশন বিকাশ করেন তবে আপনি রক্ষণ / প্রকাশের গণনা নিরাপদে উপেক্ষা করতে পারবেন।
sudo rm -rf [সম্পাদনা] একটি ভাল পয়েন্ট তোলে; তৃতীয় পক্ষের libs উল্লেখযোগ্যভাবে প্রভাবিত হতে পারে
কেউ সিস্টেম কনফিগারেশন.ফ্রেমওয়ার্কের কথা উল্লেখ করেনি ? ফ্রেমওয়ার্ক এ রাখা ভুলবেন না দয়া করে । আমি তা বুঝতে কয়েক ঘন্টা ব্যয় করেছি।
এটি অবশ্যই বিকাশকারী বা দলের পছন্দ। এআরসি (অটোমেটিক রেফারেন্স কাউন্টার) আপনার জন্য মেমরিটি স্বয়ংক্রিয়ভাবে পরিচালনা করে জিনিসগুলিকে কিছুটা সহজ করে তুলেছে। এটি উপযুক্ত হলে এটি মুক্তি, ধরে রাখা এবং ডেলোক করবে। আমি বিশ্বাস করি যে আপনি যদি ইতিমধ্যে না হয়ে থাকেন তবে আপনার নিজের পছন্দমতো একটি পরীক্ষার অ্যাপ্লিকেশনটিতে মেমরি পরিচালনা করার অভিজ্ঞতা অর্জন করা উচিত believe আরেকটি বিষয় বিবেচনা করার বিষয় হ'ল আপনার অ্যাপ্লিকেশনটি তৃতীয় পক্ষের লাইব্রেরিতে নির্ভর করে কিনা, যা এআরসি তে রূপান্তরিত না হলে আপনার অ্যাপ্লিকেশনটি সংকলন থেকে আটকাবে। পছন্দটি অবশ্যই হাতের অবস্থার উপর নির্ভরশীল।
প্রকল্পের সেটিংসে --fno-objc-arc হিসাবে পতাকা সেট করুন> পর্যায়গুলি তৈরি করুন> সংকলন উত্স