এক্সকোড 6-এ স্বয়ংক্রিয়ভাবে প্রকল্পনাম-প্রিফিক্স.পিচ তৈরি হয় না কেন?


264

কেন ProjectName-Prefix.pchস্বয়ংক্রিয়ভাবে তৈরি করা হয় না Xcode 6?

প্রাক্পম্পাইল শিরোলেখের কী আর দরকার নেই?

ProjectName-Prefix.pchআগে যে কোডটি ছিল তা কোথায় লিখব ?

উত্তর:


136

আমি মডিউলগুলির কারণে সন্দেহ করি যা এর প্রয়োজনগুলি সরিয়ে দেয় #import <Cocoa/Cocoa.h>

আপনি একটি উপসর্গ শিরোনামে যে কোডটি রাখবেন সেদিকে কোন প্রিফিক্স শিরোনাম স্থাপন করা উচিত এমন কোনও কোড নেই। আপনার আমদানিগুলি প্রয়োজনীয় ফাইলগুলিতে রাখুন। আপনার সংজ্ঞাগুলি তাদের নিজস্ব ফাইলগুলিতে রাখুন। আপনার ম্যাক্রো রাখুন ... কোথাও নেই। অন্য কোনও উপায় না থাকলে (যেমন আপনার যখন প্রয়োজন হয় __FILE__) ম্যাক্রোগুলি লেখা বন্ধ করুন । আপনার যদি ম্যাক্রোর প্রয়োজন হয় তবে এগুলি একটি শিরোনামে রাখুন এবং এটি অন্তর্ভুক্ত করুন।

প্রিফিক্স শিরোনাম এমন জিনিসগুলির জন্য প্রয়োজনীয় ছিল যা পুরো সিস্টেমের প্রায় প্রতিটি জিনিস (যেমন Foundation.h) দ্বারা বিশাল এবং ব্যবহৃত হয় । যদি আপনার কাছে বিশাল এবং সর্বব্যাপী কিছু থাকে তবে আপনার আর্কিটেকচারটি পুনর্বিবেচনা করা উচিত। উপসর্গ শিরোনামগুলি কোডগুলি পুনরায় ব্যবহার করা শক্ত করে তোলে এবং তালিকাভুক্ত ফাইলগুলির মধ্যে যে কোনওটি পরিবর্তন করতে পারে যদি সূক্ষ্ম বিল্ড সমস্যার সূচনা করে। প্রিফিক্স শিরোলেখ দিয়ে নাটকীয়ভাবে উন্নতি না হওয়া অবধি আপনার এ সময়টি এড়িয়ে চলুন যে আপনি নির্মাণের কোনও গুরুতর সময় সমস্যা দেখাতে পারবেন না।

সেক্ষেত্রে আপনি একটি তৈরি করতে পারেন এবং এটিকে ঝনঝন হয়ে যেতে পারেন, তবে এটি দুর্দান্ত ধারণা যে এটি খুব ভাল।


সম্পাদনা: এইচইউডি সম্পর্কে আপনার নির্দিষ্ট প্রশ্নের জন্য আপনি আপনার সমস্ত ভিউ কন্ট্রোলারগুলিতে ব্যবহার করেন, হ্যাঁ, আপনি একে একে একে একে একে একে প্রতিটি ভিউ কন্ট্রোলারে আমদানি করা উচিত যা এটি আসলে ব্যবহার করে। এটি নির্ভরতা পরিষ্কার করে তোলে। আপনি যখন কোনও নতুন প্রকল্পে আপনার ভিউ কন্ট্রোলারটিকে পুনরায় ব্যবহার করবেন (আপনি যদি আপনার কন্ট্রোলারগুলি ভালভাবে গড়ে তোলেন তবে এটি সাধারণ) তখন আপনি কী প্রয়োজন তা অবিলম্বে জানতে পারবেন। এটি বিভাগগুলির জন্য বিশেষত গুরুত্বপূর্ণ, যদি তারা অন্তর্ভুক্ত থাকে তবে কোডটি পুনরায় ব্যবহার করা খুব শক্ত করে তোলে।

তালিকা নির্ভরতা থেকে মুক্তি পাওয়ার জন্য PCH ফাইল নেই। এক্সকোড টেম্পলেটগুলির মতো আপনার এখনও প্রয়োজনীয় UIKit.hবা আমদানি করা উচিত Foundation.h। পিএইচসি-এর কারণ হ'ল সত্যিকারের বিশাল হেডারের (ইউআইকিট-এর মতো) সাথে ডিল করার সময় বিল্ডিং সময়ের উন্নতি করা।


102
@ আপনার উত্তরটি সাবজেক্টিভ রেন্ট। আমি সম্মত নই যে এই প্রশ্নের উত্তর হিসাবে এটি গ্রহণ করা উচিত। আপনি কীভাবে এই github.com/seancook/TWReversAuthExample/blob/… pch ছাড়া কিছু বাস্তবায়ন করবেন ? প্রতিটি ফাইলের মধ্যে লগ ইন আমদানি করবেন? এটি আপনার কোডে অপ্রয়োজনীয় ফোলাটের পুরো গাদা তৈরি করে।
ম্যাক্সিম ভেক্সলার

26
প্রতিটি ফাইল যা আসলে সেই ম্যাক্রো ব্যবহার করে, হ্যাঁ (আমার অভিজ্ঞতায় এটি সাধারণত সিস্টেমের প্রতিটি ফাইলের চেয়ে কম হয়) is এটি আমার বক্তব্যটির খুব ভাল উদাহরণ। এটিকে আমদানি করা স্পষ্টভাবে মুখোশ দেয় যে এই লগিং ম্যাক্রোর উপর আপনার নির্ভরতা রয়েছে। TWAPIManager.mউদাহরণস্বরূপ, আপনি অন্য কোনও প্রকল্পে অনুলিপি করার চেষ্টা করার সময়, আপনি ত্রুটিগুলি পাবেন যা TWALog()সংজ্ঞায়িত নয়, এটি কোথায় পাওয়া যাবে সে সম্পর্কে কোনও ইঙ্গিত ছাড়াই। কোড ভাগ করে নেওয়ার চেষ্টা করে বেশ কয়েকটি বড় প্রকল্পে আমি ঠিক সেই সমস্যার মুখোমুখি হয়েছি। এটি তৈরি TWAPILog.hএবং আমদানি করা এটি তুচ্ছ ডেভ ব্যয়ের সাথে সমাধান করে।
রব নেপিয়ার 15

5
আমি প্রায় প্রতিটি ক্লাসে রিঅ্যাকটিভ কোকো ব্যবহার করি, পিএইচচি ফাইল ব্যবহার না করা আমার জন্য উন্মাদ হবে ...
স্টেফানো ম্যান্ডিনো

2
কেবল মডিউলই নয়, দ্রুত সমর্থন সম্ভবত একটি বড় অংশ।
uchuugaka

12
মূলটি হ'ল পি সি সি একটি প্রাক-সংকলিত শিরোনাম । প্রাক-সংকলন বিল্ড পারফরম্যান্সের জন্য, স্বয়ংক্রিয় উপলভ্যতার জন্য নয়। প্রাক-সংকলনটি আপনার বিল্ডকে জগাখিচু করার বিভিন্ন উপায়ের সাথে পরিচয় করিয়ে দেয় এবং এমন বিশাল জিনিসের জন্য সংরক্ষিত হওয়া উচিত যা পরিষ্কার-পরিচ্ছন্ন বিল্ডগুলির মধ্যে কখনও পরিবর্তন হয় না (যেমন ফাউন্ডেশন)।
রব নেপিয়ার

425

প্রশ্নটি যদি সঠিক হয় বা না হয় তবে আপনি নিজেই PCH ফাইল যুক্ত করতে পারেন:

  1. প্রকল্পের নতুন PCH ফাইল যোগ করুন নতুন ফাইল> অন্যান্য> PCH ফাইল

  2. উদ্দিষ্ট এর এ সেটিং বিল্ড বিকল্প, মান সেট উপসর্গ শিরোলেখ উপসর্গ হিসাবে প্রকল্পের নাম সঙ্গে আপনার PCH ফাইল নাম, (নামে প্রকল্পের জন্য অর্থাত TestProjectএবং নামে PCH ফাইল MyPrefixHeaderFile, মান যোগ TestProject/MyPrefixHeaderFile.pchplist করার জন্য)।

    টিপ: আপনি প্রকল্পটি যেখানে রেখেছেন তার মতো জিনিসগুলি ব্যবহার করতে $(SRCROOT)বা $(PROJECT_DIR)পথে যেতে পারেন .pch

  3. উদ্দিষ্ট এর এ সেটিং বিল্ড বিকল্প, মান সেট Precompile উপসর্গ শিরোলেখ করতে YES


32
PCH ফাইলগুলিতে আমার মতামত থাকা সত্ত্বেও, +1 1 কীভাবে সরঞ্জামগুলি ব্যবহার করতে হয় তা জানা লোকের পক্ষে এখনও দরকারী।
রব নেপিয়ার

20
@ ইয়েদ্যা, আমি আপনার প্রশ্নের যে রায় হোক না কেন সত্ত্বেও প্রশ্নের উত্তর যোগাযোগের জন্য সময় দেওয়ার জন্য দ্রুত ধন্যবাদ জানাতে চেয়েছিলাম। আমি প্রশংসা করি যখন লোকেরা প্রশ্নটি কতটা অসুস্থ হওয়ার পরামর্শ দেয় সে সম্পর্কে কেবল ব্যক্তিকে ঝুঁকি দেওয়ার পরিবর্তে আন্তরিকভাবে প্রশ্নের উত্তর দিতে সময় দেয় take
ক্যাম্পো

3
ধন্যবাদ। আমার কিছু উদ্দেশ্য-সিটিকে একটি সুইফ্ট প্রকল্পে অন্তর্ভুক্ত করার সময় আমি এটি দরকারী বলে মনে করি, সুতরাং আমাকে আর ফিরে যেতে হবে না those
ক্রিস প্রিন্স

ওবিজেসি থেকে সুইফ্টে স্থানান্তরের সময় খুব সহজ - আমার কাছে ওবিজেসি-তে লেখা লাইব্রেরিগুলির একটি স্তূপ রয়েছে এবং সর্বশেষে আমি যা করতে চাই তা সঠিক সিস্টেমের শিরোনামকে অন্তর্ভুক্ত করার জন্য তাদের সকলকে সম্পাদনা করা।
এচেলন

1
লক্ষ্যটির বিল্ডিং সেটিংসটি ব্যবহার করার কারণে এটি আমার পক্ষে কার্যকর হয়নি। যাইহোক, যখন আমি এই নির্দেশাবলী অনুসরণ করি পরিবর্তে সমস্ত কিছু কাজ করে প্রজেক্ট বিল্ড সেটিংস পরিবর্তন করে।
পল

128

আপনার নিজের পিএইচসি ফাইল
অ্যাড তৈরি করতে হবেNew file -> Other-> PCH file

তারপরে আপনার বিল্ডে এই পিসিএইচ ফাইলটির পাথ যুক্ত করুন setting->prefix header->path

($ (SRCROOT) /filename.pch)

এখানে চিত্র বর্ণনা লিখুন


3
ঠিক আছে, কাজের ডিয়ারের উপর নির্ভর করে ভেরিয়েবলগুলি বিভিন্ন রকম হতে পারে। আমি ব্যবহার করছি$(PRODUCT_DIR)/$(PRODUCT_NAME)/PrefixHeader.pch
আলেজান্দ্রো ইভভিন

আপনি যদি নির্দিষ্ট ফোল্ডারের মধ্যে .pch ফাইলটি রাখেন, তবে পরিস্থিতি দেখা দেয়।
প্রকাশ রাজ

51

আমি আপনাকে একটি ছবি দিয়ে দেখাব!

  1. একটি নতুন ফাইল যুক্ত করুন একটি নতুন ফাইল যুক্ত করুন

  2. যান প্রকল্প / সেটিং বিল্ড / APPl LLVM 6.0 ভাষার একটি নতুন ফাইল যুক্ত করুন


24

.Pch ফাইল যুক্ত করতে-

1) আপনার প্রকল্পে নতুন .pch ফাইল যুক্ত করুন -> নতুন ফাইল-> অন্যান্য-> পিএইচসি ফাইল

2) আপনার প্রকল্পের বিল্ড সেটিংস যান oto

3) "উপসর্গ শিরোনাম" অনুসন্ধান করুন। আপনি এটি অ্যাপল এলএলভিএম এর অধীনে খুঁজে পেতে পারেন।

4) মাঠে এটি আটকান $(SRCROOT)/yourPrefixHeaderFileName.pch

5) প্রকল্পটি পরিষ্কার করুন এবং নির্মাণ করুন। এটাই!!!

এখানে চিত্র বর্ণনা লিখুন


12

আপনি যদি ম্যানুয়ালি একটি .pch ফাইল যুক্ত করার সিদ্ধান্ত নিয়ে থাকেন এবং আপনি xCode 6 এর মতোই অবজেক্টিভ-সি ব্যবহার করতে চান তবে আপনাকে .pch ফাইলে ইউআইকিট এবং ফাউন্ডেশন ফ্রেমওয়ার্কগুলিও আমদানি করতে হবে। অন্যথায় আপনাকে প্রতিটি ফ্রেম ফাইলটিতে ম্যানুয়ালি এই ফ্রেমওয়ার্কগুলি আমদানি করতে হবে। এটি ব্যবহৃত ভাষার পরীক্ষার জন্য আপনি নিম্নলিখিত কোডটি যেভাবেই যুক্ত করতে পারেন:

#ifdef __OBJC__
    #import <UIKit/UIKit.h>
    #import <Foundation/Foundation.h>
#endif

2
ওবিজেসি কোড জড়িত সমস্ত কিছু অবশ্যই উপরের # আইডিডিফ _ ওবিজেসি _ এর ভিতরে আবৃত থাকতে হবে , অন্যথায় আপনি সি উত্স থেকে ত্রুটি পাবেন (যদি আপনার কাছে এমন উত্স থাকে) তবে আপনি কখনই বুঝতে পারবেন না
ইসহাক


7

নতুন PCH ফাইল যুক্ত করার জন্য বেলো পদক্ষেপগুলি অনুসরণ করুন:

(1) নতুন দর্শন যুক্ত করুন - আইওএস - অন্যান্য এবং পিসিএইচ ফাইল নির্বাচন করুন

(২) আপনার প্রকল্পে এই PCH ফাইলটির পথ যুক্ত করুন - বিল্ডসেটিং - অ্যাপল এলএলভিএম 6.0 ভাষা

উপসর্গের শিরোনামের পথটি সেট করুন আপনার অ্যাপ্লিকেশন নাম (রুট-পাথ) /filename.pch


দয়া করে শেষটি ব্যাখ্যা করুন। সেট উপসর্গ শিরোনাম পাথ যোগ করুন।
নাভিদ আব্বাস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.