কোনও এনএসআরএলকে এনএসএস স্ট্রিংয়ে রূপান্তর করুন


336

আমার একটি অ্যাপ্লিকেশন রয়েছে যেখানে ব্যবহারকারী অন্তর্নির্মিত অ্যাপ্লিকেশন চিত্রগুলি বা আইফোন ফটো লাইব্রেরি থেকে কোনও চিত্র চয়ন করতে পারে। আমি এমন একটি বিষয় ব্যবহার করি যা উপলক্ষগুলি NSStringসংরক্ষণ করার জন্য একটি সম্পত্তি আছে imagePath

এখন অন্তর্নির্মিত অ্যাপ্লিকেশন চিত্রগুলির ক্ষেত্রে আমি ফাইলটির NSStringএকটি সংরক্ষণ হিসাবে সংরক্ষণ করি [occasion imagePath]। তবে ২ য় ক্ষেত্রে যেখানে ব্যবহারকারীর একটি ছবি বাছাই করে আমি ফটো লাইব্রেরি তৈরি করি NSURLযা আমি NSStringএটিতে সংরক্ষণ করতে সক্ষম হতে একটিতে রূপান্তর করতে চাই যা পেয়েছি [occasion imagePath]।

বলা যায় এর রূপান্তরের কি সম্ভব NSURLএকটি থেকে NSString?

উত্তর:



132

আপনি যদি খাঁটি স্ট্রিংটিতে আগ্রহী হন:

[myUrl absoluteString];

আপনি যদি ইউআরএল দ্বারা উপস্থাপিত পথে আগ্রহী হন (এবং উদাহরণগুলির সাথে NSFileManagerপদ্ধতিতে ব্যবহার করতে পারেন ):

[myUrl path];

হাই, আপনার উত্তরের জন্য ধন্যবাদ আমি যেভাবে সংরক্ষণ করেছি তার থেকে চিত্রটি লোড করার চেষ্টা করছি, আমি এনএসফিলম্যানেজারটি ব্যবহারের বিষয়ে আপনি যে বিষয়ে উল্লেখ করেছেন [myUril path];তাতে আমি আগ্রহী যখন আমি পরম স্ট্রিংয়ের পরিবর্তে পথ ব্যবহার করি তবে এটি আমাকে নাম দিয়েছিল asset.jpgআপনি কীভাবে এটি ব্যবহার করবেন সে সম্পর্কে আরও বিশদভাবে আবেদন করতে পারেন? ছবিটি কোনও ইউআইআইমেজ উদাহরণে লোড করবেন?
আলী

ওহে. অবশ্যই ফাইলের নাম থেকে আসল ফাইল সিস্টেমের পথটি জানতে আপনার কোথায় ফাইলটি সংরক্ষিত রয়েছে তা জানতে হবে এবং তারপরে এনএসএসটিংয়ের স্ট্রিংবাই অ্যাপেন্ডিংপ্যাথ কম্পোনেন্ট ব্যবহার করে কমপোজ করে পুরো পাথ (ডিরেক্টরি + ফাইলের নাম) তৈরি করুন: এই নিয়মের ব্যতিক্রম কেবল তখনই হয় যখন আপনি অ্যাপ্লিকেশন বান্ডলে চিত্রটি সঞ্চিত আছে তা জেনে রাখুন, এই ক্ষেত্রে আপনি কেবলমাত্র [UII छवि চিত্রনামযুক্ত: "নাম"] কলটি ব্যবহার করতে পারেন যা আপনার পুরো কাজটি করে। তবে অন্যান্য ক্ষেত্রে আপনাকে আপনার পুরো পথ নির্দিষ্ট করতে হবে।
viggio24

হাই, আপনার উত্তরের জন্য আবার ধন্যবাদ। এই এনএসএসটিং ব্যবহার করে কীভাবে চিত্রটি কোনও ইউআইআইমেজে লোড করতে হবে তা নিয়ে আমি এখনও বিভ্রান্ত রয়েছি assets-library://asset/asset.JPG?id=1000000001&ext=JPGযা আমি এনএসএসস্ট্রিংতে রূপান্তরিত করার [myUrl absoluteString]পরে ফলাফলকে রূপান্তর করে সংরক্ষণ করেছি । এখানে আমি এই বিষয়ে এই প্রশ্নটি করা কিন্তু কোন উত্তর পাইনি। আপনি যদি এর উত্তর দিতে পারেন তবে আমি এটির প্রশংসা করব [ stackoverflow.com/questions/8085267/…
আলী

2
হ্যাঁ, আপনি যখন এনএসফাইম্যানেজারের সাথে এটি ব্যবহার করতে চান তখন আমাদের ইউআরএল.এবসলিউট স্ট্রিংয়ের পরিবর্তে আমাদের ইউআরএল.পথটি ব্যবহার করা উচিত, ধন্যবাদ ভিগো ২৪ !!
ফ্লাইপিগ

যেহেতু আপনার একটি assets-libraryURL না হয়ে একটি ইউআরএল রয়েছে তাই fileএটি বেমানান NSFileManager। এই জাতীয় URL এ অ্যাক্সেস কঠোরভাবে নিয়ন্ত্রিত হয় ALAssetsLibrary
মাইক আবদুল্লাহ

46

সুইফটে এটি ব্যবহার করে দেখুন:

var urlString = myUrl.absoluteString

উদ্দেশ্য গ:

NSString *urlString = [myURL absoluteString];

আমি এনএসএসটিং * ইউআরআল স্ট্রিং = [মাইআরএলল পরম স্ট্রিং] ব্যবহার করেছি; তবে আমি এই ত্রুটিটি পেয়েছিলাম এবং এক্সকোড ক্র্যাশ হয়েছিল। - [__ এনএসসিএফএসআরং পরম স্ট্রিং]: অপরিজ্ঞাত নির্বাচককে উদাহরণ পাঠানো হয়েছে 0x791a18e0
মাই ত্রিনহ

@ VõMaiTrinh এর অর্থ আপনার এনএসএস স্ট্রিং myURLক্লাসের অবজেক্ট। যেহেতু এনএসএসআরটিংয়ের absoluteStringপদ্ধতি নেই তখন এটি ক্রাশের দিকে নিয়ে যায়।
বেরিলিয়াম

17

সুইফ্ট আপডেট:

var myUrlStr : String = myUrl.absoluteString

10
আপনি বাদ দিতে পারেন Stringযেহেতু সুইফট টাইপ ইনফারেন্স ব্যবহার করে।
সালাওয়াত খানভ

আপনার আসলে বাদ দেওয়া উচিতString - সুইফ্ট ডিজাইনের গাইডলাইনগুলি যতটা সম্ভব কম অপ্রয়োজনীয় কোড অর্জন করার চেষ্টা করুন।
সত্য

1

আমি কেবল এই জিনিসটির সাথে লড়াই করেছি এবং এই আপডেটটি কার্যকর হয়নি।

এটি শেষ পর্যন্ত সুইফটে করেছিল:

let myUrlStr : String = myUrl!.relativePath!

1

আপনি যে কোনও একটি উপায় ব্যবহার করতে পারেন

NSString *string=[NSString stringWithFormat:@"%@",url1];

অথবা

NSString *str=[url1 absoluteString];

NSLog(@"string :: %@",string);

স্ট্রিং :: ফাইল: ///var/containers/Bundle/Application/E2D7570B-D5A6-45A0-8EAAA1F7476071FE/ রেমো ডুপ্লিকেট মিডিয়া.এপ / লোডিং_সার্কেল_নিমেশন.gif

NSLog(@"str :: %@", str);

str :: ফাইল: ///var/containers/Bundle/Application/E2D7570B-D5A6-45A0-8EAA-A1F7476071FE/ রেমো ডুপ্লিকেট মিডিয়া.এপ / লোডিং_সার্কেল_নিমেশন.gif


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