কীভাবে একটি সুইফট প্রকল্পের সাথে কোকোপডগুলি সংহত করতে হবে?


84

অ্যাপল তাদের নতুন প্রোগ্রামিং ভাষা সুইফ্টের সাথে পরিচয় করায় আমি অবাক হই যে আপনি কোকোপডসের মাধ্যমে উপলভ্য বিদ্যমান অবজেক্টিভ-সি লাইব্রেরির সাথে কীভাবে এটি সংহত করতে পারবেন ?


আপনার সুইফট প্রকল্পের সাহায্যে কোকোপডগুলি কীভাবে সেটআপ করবেন সে সম্পর্কে আমার সাম্প্রতিক নিবন্ধটিও পড়তে পারেন ।
হেমাং

উত্তর:


78

কোকোপডস ০.০6 এবং তার উপরেuse_frameworks! নির্দেশাবলী প্রবর্তন করে যা বোঝায় যে সুইফটে অবজেক্টিভ-সি পোড আমদানির জন্য ব্রিজিং শিরোনামের প্রয়োজন নেই।

এমবিপ্রোগ্রেসএইচডি এবং অ্যালামোফায়ার ব্যবহার করে দয়া করে একটি সম্পূর্ণ উদাহরণের নীচে সন্ধান করুন :

1. পডফিল

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.3'
use_frameworks!

pod 'Alamofire', '>= 1.2.2' # Swift pod
pod 'MBProgressHUD', '>= 0.9.1' # Objective-C pod

2. মোছা

আপনার ব্রিজিং হেডার থেকে # আমদানি সরিয়ে ফেলুন বা এমনকি ব্রিজিং শিরোনাম ফাইলটি আপনার প্রয়োজন না থাকলে মুছুন। আপনি যদি পরবর্তী সম্ভাবনাটি বেছে নেন তবে আপনার এক্সকোড প্রকল্পের কনফিগারেশনে পাথটি (এই মুছে ফেলা ব্রিজিং শিরোলেখ ফাইলটিতে) মুছে ফেলতে ভুলবেন না।

৩. আমদানি যুক্ত করা হচ্ছে

এই শ্রেণীর (এস) প্রয়োজন প্রতিটি সুইফট ফাইলের শীর্ষে যুক্ত করুন import MBProgressHUDএবং / অথবাimport Alamofire

৪. প্রয়োজনে এনামগুলিকে ঠিক করুন

আপনি এখন প্রচুর ফ্রেমওয়ার্ক ব্যবহার করছেন, সুতরাং আপনার এনামগুলি ফ্লাইটে চলে গেছে! আপনার কাছে সুইফ্টের একটি লাইন থাকতে পারে যা ব্রিজিং শিরোনামের সাথে ভাল ছিল:

progressHUD.mode = MBProgressHUDModeIndeterminate

এটি এখন এটি হয়ে উঠতে হবে:

progressHUD.mode = MBProgressHUDMode.Indeterminate

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

( এই উত্তরের উত্স )

আপনার তথ্যের জন্য: আমি অনুমান করি (নিশ্চিত হওয়ার জন্য আপনাকে নিজেরাই পরীক্ষা করতে হবে) যে ব্যবহার_ফ্রেমওয়ার্কস! আপনার পোডফাইলে নির্দেশাবলী কেবল আইকন> = 8 কে লক্ষ্য করে এক্সকোড প্রকল্পের সাথেই উপযুক্ত।


73

মনে হচ্ছে প্রক্রিয়াটি কোকো এবং অবজেক্টিভ-সি ডকুমেন্টেশনের সাথে সুইফট ব্যবহারের মিশ্রণ এবং ম্যাচ বিভাগে বর্ণিতটির মতো

  1. আপনার পডফিল তৈরি করুন এবং চালান pod install
  2. একটি নতুন উদ্দেশ্য-সি শিরোনাম ফাইল তৈরি করুন Example-Bridging-Header.h, এবং এটি প্রকল্পে যুক্ত করুন add
  3. ব্রিজ শিরোনামে আমদানি বিবৃতি যুক্ত করুন ।
  4. Objective-C Bridging Headerআপনার টার্গেটের জন্য সেট করুন :

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

এখন আপনি আপনার গ্রন্থাগারটি সেক্ষেত্রে এমকিউএনইটস আপনার সুইফট ফাইলটিতে ব্যবহার করতে পারেন:

let kilograms = NSNumber.mass_kilogram(2)()
let pounds = NSNumber.mass_pound(10)()
let result = kilograms.add(pounds)
println(result)

আরও এখানে: একটি সুইফট প্রকল্পের সাথে কোকোপডগুলিকে একীকরণ করা হচ্ছে


4
আমার জন্য আমদানি বিবৃতিটির #import <Reachability/Reachability.h>পরিবর্তে প্রকল্প দির, ওরফে অন্তর্ভুক্ত করা দরকার #import "Reachability.h"
কাইল Clegg

শুধু একটি আপডেট। সুইফট পিওডিগুলি, অর্থাত: সুইফট লিবগুলি শীঘ্রই কোকোপডস দ্বারা সমর্থিত হবে। পরবর্তী সংস্করণ 0.36 কোকোপডগুলিতে সম্পূর্ণ সুইফ্ট সমর্থন আনবে। বৈশিষ্ট্যটির বেশিরভাগই ইতিমধ্যে সম্পূর্ণ এবং আপনি আমার ব্লগ পোস্টের
শচীন পালেওয়ার

4
কোকোপডস 0.36 এবং তার বেশি ব্যবহারের_ফ্রেমওয়ার্কগুলি উপস্থাপন করেছে! নির্দেশ যা বোঝায় যে ব্রিজিং শিরোনামটি সুইফটে অবজেক্টিভ-সি পোডগুলি আমদানির জন্য আর প্রয়োজন নেই (দয়া করে নীচে আমার উত্তরটি দেখুন)।
কিং-উইজার্ড

4
উপরেরটি ছাড়াও, আমি দেখতে পেলাম যে বিল্ড সেটিংসে আমাকে আমার "ব্যবহারকারী শিরোনাম অনুসন্ধানের পথগুলিতে" পড / ** যোগ করতে হয়েছিল। ব্রিজ ফাইলে আমাকে "# আমদানি <ফাউন্ডেশন / ফাউন্ডেশন h>" যুক্ত করতে হয়েছিল।
সুইফ্টি ম্যাকউইফটার্টন

4
ধন্যবাদ সুইফি আমি ইউজ_ফ্রেমওয়ার্কস চেষ্টা করেছি! তবে এটি আমার পক্ষে কার্যকর হয়নি। ব্যবহারকারীর অনুসন্ধানের পথে "পডস / **" যুক্ত করা কাজ করেছে।
ব্যবহারকারী3246173

16

আপডেট : কোকোপডস 0.36 স্থিতিশীল সংস্করণ প্রকাশিত হয়েছে। এটি সরকারীভাবে সুইফটকে সমর্থন করে।


কোকোপডস এখন তাদের সর্বশেষ 0.36 রিলিজে সুইফটকে সমর্থন করে। এটি এখনও বিটাতে রয়েছে তবে এটি কার্যকর।

প্রথমে আপনার টার্মিনালে এটি চালিয়ে আপনার কোকোপডস বিটা (বর্তমানে বিটা 2) ইনস্টল করতে হবে।

sudo gem install cocoapods --pre

যে প্রায় কাছাকাছি এটা. আপনি সুইফ লাইব্রেরিগুলি যুক্ত করতে পারেন যেমন আপনি সাধারণত করেন।

তবে আপনি যদি কোকোপডসের মাধ্যমে একটি সুইফট প্রকল্পে অবজেক্টিভ সি তে লিখিত একটি লাইব্রেরি যুক্ত করতে চান তবে একটি ধরা আছে। use_frameworks!আপনার পোডফাইলে আপনাকে লাইনটি যুক্ত করতে হবে। এখানে একটি উদাহরণ।

use_frameworks!
platform :ios, '8.0'

pod 'MagicalRecord'

আমি এই সম্পর্কে একটি ব্লগ পোস্ট লিখেছি ।


4
use_frameworks!শুধুমাত্র আইওএস> = 8 এর জন্য? যদি তা হয় তবে আপনার উত্তরটি লিখতে হবে।
16:47

2

আপনি যদি নিজের ব্রিজিং-শিরোনামে কোনও ফাইল খুঁজে না পেয়ে থাকেন তবে আপনি পডস লাইব্রেরিটি আপনার বিল্ড স্কিমের সাথে সংযুক্ত রয়েছে কিনা তা নিশ্চিত করতে চাইতে পারেন।

কোকোপডস ট্রাবলশুটিং বিভাগটি এখানে আইটেম # 4 এর আওতায় এটি কীভাবে করবেন তা বর্ণনা করে


1

এখন আপনি কোকোপডগুলি 0.36.0 সংস্করণটি চালিয়ে ব্যবহার করতে পারেন sudo gem install cocoapodsযা সুইফ্ট ফ্রেমওয়ার্কগুলিকে একীভূত করতে সমর্থন করে। আপনি যখন সুইফ্ট দ্বারা লিখিত একটি কাঠামো ব্যবহার করেন, আপনি পোডফাইলে এটি স্পষ্টভাবে ব্যবহার করা উচিত:

platform :ios, '8.0'
use_frameworks!
pod 'Alamofire'

0

আমার ক্ষেত্রে, আমি দেখতে পেয়েছি যে আমি এখানে পডফাইলে পোষ্টফাইলে কেবল টেস্ট এবং টেস্টইউআই টার্গেটগুলিতে মূল লক্ষ্যগুলিতে শিং যোগ করছি না

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