সুইফটে এনএসএসস্ট্রিং থেকে এনএসডিটা তৈরি করা হচ্ছে


174

আমি শেষ পর্যন্ত NSMutableURLRequestএকটি বৈধ সহ একটি রাখার চেষ্টা করছি HTTPBody, তবে আমি আমার স্ট্রিং ডেটা (ক থেকে আগত UITextField) একটি ব্যবহারযোগ্য NSDataবস্তুর মধ্যে আনতে পারি না ।

আমি অন্য পদ্ধতিতে যাওয়ার জন্য এই পদ্ধতিটি দেখেছি:

NSString(data data: NSData!, encoding encoding: UInt)

তবে আমি আমার ব্যবহারের ক্ষেত্রে কোনও ডকুমেন্টেশন খুঁজে পাচ্ছি না। আমি স্ট্রিংটি অন্য কোনও ধরণের প্রয়োজনে খোলার জন্য উন্মুক্ত, তবে NSDataসুইফ্ট ব্যবহারের জন্য আরম্ভের বিকল্পগুলির মধ্যে কোনওটিই আমি সন্ধান করছি বলে মনে হয় না।

উত্তর:


359

সুইফ্ট 3 এ

let data = string.data(using: .utf8)

সুইফট 2 এ (বা আপনার যদি ইতিমধ্যে কোনও NSStringউদাহরণ থাকে)

let data = string.dataUsingEncoding(NSUTF8StringEncoding)

সুইফ্ট 1-এ (বা যদি আপনার একটি সুইফ্ট থাকে String):

let data = (string as NSString).dataUsingEncoding(NSUTF8StringEncoding)

এছাড়াও মনে রাখবেন dataএকজন Optional<NSData>(যেহেতু রূপান্তর ব্যর্থ হতে পারে), তাই আপনি এটি ব্যবহার করে, উদাহরণস্বরূপ আগেই মোড়ক খোলা করতে হবে:

if let d = data {
    println(d)
}

সুইফট এনএসডিটা টাইপ অনুমান করতে পারে?
নিকোলাস মনজিনি

@ নিকোলাস ম্যানজিনি নিশ্চিত যে এটি অন্য কোনও ধরণের মতোই পারে।
গ্যাব্রিয়েল পেট্রোনেলা

2
@ ম্যাকডোনজো হ্যাঁ, সেই এপিআই সময়ের সাথে সাথে পরিবর্তিত হয়েছিল এবং এখন এটি একটি ফিরে আসে Optional<NSData>, যা আপনাকে ব্যবহারের আগে খচিত করতে হবে
গ্যাব্রিয়েল পেট্রোনেলা

3
সুইফট 2-তে, স্বয়ংক্রিয়ভাবে সেতুবন্ধিত হওয়ার কারণে "হিসাবে" castালাই ব্যবহার করার দরকার নেই
জ্যাকি

1
ইউটিএফ -8 এ রূপান্তর ব্যর্থ হতে পারে না , অতএব এটির প্রয়োজন নেই এমন একটি .চ্ছিক বাঁধাই, আপনি এখানে জোর করে আন-মোড়ানো করতে পারেন।
মার্টিন আর

33

সুইফট 4 এবং 3

Dataঅবজেক্ট থেকে Stringঅবজেক্ট তৈরি করা সুইফট ৩-এ পরিবর্তন করা হয়েছে এখন সঠিক সংস্করণটি হ'ল:

let data = "any string".data(using: .utf8)

ধন্যবাদ। এটি আমার পক্ষে পুরোপুরি দ্রুতগতিতে 3 এ কাজ করেছে। ইনপুট = "টেস্ট স্ট্রিং" যাক এক্সডাটা = ইনপুট.ডেটা (ব্যবহার করুন: স্ট্রিং E এনকোডিং.উইটফ 8)
র‌্যাদেবাস

1
কোনও ধারণা কেন স্ট্রিং (ডেটা: ডেটা !, এনকোডিং: .নলসসিএএসসিআইআই) শূন্য হবে?
হ্যাপিহেইপ্পি



3
// Checking the format
var urlString: NSString = NSString(data: jsonData, encoding: NSUTF8StringEncoding)

// Convert your data and set your request's HTTPBody property
var stringData: NSString = NSString(string: "jsonRequest=\(urlString)")

var requestBodyData: NSData = stringData.dataUsingEncoding(NSUTF8StringEncoding)!

2

Notচ্ছিক ডেটা তৈরি করতে আমি এটি ব্যবহার করার পরামর্শ দিচ্ছি:

let key = "1234567"
let keyData = Data(key.utf8)

1
সুইফ্ট 3+ এ এটি সবচেয়ে কার্যকর উপায়।
ভাদিয়ান



0

স্ট্রিংটিকে ডেটাতে রূপান্তর করুন

extension String {
    func toData() -> Data {
        return Data(self.utf8)
    }
}

ডেটা স্ট্রিংয়ে রূপান্তর করুন

extension Data {
      func toString() -> String {
          return String(decoding: self, as: UTF8.self)
      }
   }
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.