আমার কাছে এমন কোড ছিল যা দেখে আপনি ঠিক কী করছিলেন এবং একই সতর্কতা পেয়ে যাচ্ছিল। আমার আলোচনার সাথে প্রাসঙ্গিকভাবে কিছুটা পৃথক হয়েছিল
init<T>(from value: T) {
var value = value
self.init(buffer: UnsafeBufferPointer(start: &value, count: 1))
}
এটি এখনও সতর্কতা উত্পন্ন করে যে অনিরাপদ-বাফারপয়েন্টার একটি জটলা পয়েন্টার তৈরি করছে তবে ইঙ্গিতগুলি বলে যে "কলটি 'আরম্ভের জন্য কেবলমাত্র পয়েন্টার বৈধ করে (শুরু: গণনা :)'"
তবে আনসাফফুফারপয়েন্টার থেকে রিটার্নটি কোনও কিছুর জন্য বরাদ্দ করা হয়নি, তাই আমি চেষ্টা করে থাকলে আমি এটির উদ্যোগের বাইরে ব্যবহার করতে পারিনি। সুতরাং এখানে সংকলক আমাকে এমন কিছু করার বিরুদ্ধে সতর্ক করছে যা আমি যাইহোক করতে পারি না।
আমি অনুমান করি যে Data.init (বাফার:) পিটিআর সংরক্ষণ করতে পারে তবে আমি ধরে নেব যে এটি যদি কোনও অনিরাপদবাফারপয়েন্টার গ্রহণ করে তবে এটি সঠিকভাবে ব্যবহারের জন্য দায় স্বীকার করছে
যাইহোক, এটি এখনও আপনার সমস্যার সমাধান করে না। আমি এই সঙ্গে সতর্কতা কাছাকাছি পেয়েছিলাম
init<T>(from value: T) {
var value = value
var myData = Data()
withUnsafePointer(to:&value, { (ptr: UnsafePointer<T>) -> Void in
myData = Data( buffer: UnsafeBufferPointer(start: ptr, count: 1))
})
self.init(myData)
}
এবং এটি সতর্কতা জেনারেট করে না এবং কাজ করে (আমার অ্যাপ্লিকেশনটিতে যাইহোক) প্রদর্শিত হবে। এটি বিশেষজ্ঞদের সাথে এখানে মাস্টার কেটে যায় কিনা তা অন্য বিষয়।
ধরনের HLock এবং HUnlock এর দিনগুলি আমাকে উদাসীন করে তোলে