คำถามติดแท็ก swift3

ใช้แท็กนี้สำหรับคำถามที่เกี่ยวข้องโดยตรงกับการเปลี่ยนแปลงในเวอร์ชัน 3 ของภาษาโปรแกรม Swift ของ Apple ใช้แท็ก [รวดเร็ว] สำหรับคำถามภาษาทั่วไปเพิ่มเติมหรือแท็ก [ios], [โกโก้], [apple-watch] ฯลฯ สำหรับคำถามเกี่ยวกับการพัฒนาบนแพลตฟอร์ม Apple

3
ไปกลับประเภทหมายเลข Swift ไปยัง / จาก Data
ด้วย Swift 3 ที่เอนเอียงไปทางDataแทนที่จะเป็น[UInt8]ฉันพยายามค้นหาวิธีที่มีประสิทธิภาพ / สำนวนที่สุดในการเข้ารหัส / ถอดรหัสจะเปลี่ยนประเภทตัวเลขต่างๆ (UInt8, Double, Float, Int64 ฯลฯ ) เป็นวัตถุข้อมูล มีคำตอบนี้สำหรับการใช้ [UInt8]แต่ดูเหมือนว่าจะใช้ API ตัวชี้ต่างๆที่ฉันไม่พบใน Data ฉันต้องการโดยทั่วไปส่วนขยายที่กำหนดเองที่มีลักษณะดังนี้: let input = 42.13 // implicit Double let bytes = input.data let roundtrip = bytes.to(Double) // --> 42.13 ส่วนที่ทำให้ฉันเข้าใจผิดจริงๆฉันได้ดูเอกสารจำนวนมากคือฉันจะหาสิ่งที่ชี้ได้อย่างไร (OpaquePointer หรือ BufferPointer หรือ UnsafePointer?) จากโครงสร้างพื้นฐานใด ๆ (ซึ่งเป็นตัวเลขทั้งหมด) ใน C …

11
Swift 3 - โทเค็นอุปกรณ์ถูกแยกวิเคราะห์เป็น '32BYTES'
ฉันเพิ่งอัปเดตจาก Xcode 7 เป็น 8 GM และท่ามกลางปัญหาความเข้ากันได้ของ Swift 3 ฉันสังเกตเห็นว่าโทเค็นอุปกรณ์ของฉันหยุดทำงาน ตอนนี้พวกเขาอ่านเฉพาะ '32BYTES' func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) { print(deviceToken) // Prints '32BYTES' print(String(data: deviceToken , encoding: .utf8)) // Prints nil } ก่อนการอัปเดตฉันสามารถส่ง NSData ไปยังเซิร์ฟเวอร์ของฉันได้ แต่ตอนนี้ฉันมีปัญหาในการแยกวิเคราะห์โทเค็น ฉันพลาดอะไรไปที่นี่? แก้ไข: ฉันเพิ่งทดสอบการแปลงกลับเป็น NSData และฉันเห็นผลลัพธ์ที่คาดหวัง ตอนนี้ฉันแค่สับสนเกี่ยวกับประเภทข้อมูลใหม่ func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) …
94 ios  swift  swift3 

13
การลบวัตถุออกจากอาร์เรย์ใน Swift 3
ในแอปพลิเคชันของฉันฉันเพิ่มวัตถุหนึ่งชิ้นในอาร์เรย์เมื่อเลือกเซลล์และยกเลิกการเลือกและลบวัตถุเมื่อเลือกเซลล์ใหม่ ฉันใช้รหัสนั้น แต่ให้ข้อผิดพลาด extension Array { func indexOfObject(object : AnyObject) -> NSInteger { return (self as NSArray).indexOfObject(object) } mutating func removeObject(object : AnyObject) { for var index = self.indexOfObject(object); index != NSNotFound; index = self.indexOfObject(object) { self.removeAtIndex(index) } } } class MyViewController: UITableViewController { var arrContacts: [Any] = [] var …
93 ios  arrays  swift  swift3 

10
สร้างรหัสข้อผิดพลาดของคุณเองใน swift 3
สิ่งที่ฉันพยายามบรรลุคือดำเนินการURLSessionตามคำขออย่างรวดเร็ว 3 ฉันกำลังดำเนินการดำเนินการนี้ในฟังก์ชันแยกต่างหาก (เพื่อไม่ให้เขียนโค้ดแยกกันสำหรับ GET และ POST) และส่งคืนURLSessionDataTaskและจัดการความสำเร็จและความล้มเหลวในการปิด เรียงแบบนี้ - let task = URLSession.shared.dataTask(with: request) { (data, uRLResponse, responseError) in DispatchQueue.main.async { var httpResponse = uRLResponse as! HTTPURLResponse if responseError != nil && httpResponse.statusCode == 200{ successHandler(data!) }else{ if(responseError == nil){ //Trying to achieve something like below 2 lines //Following …

8
วิธีแก้ปัญหา“ การแก้ไขสตริงสร้างคำอธิบายการดีบักสำหรับค่าที่เป็นทางเลือก คุณตั้งใจที่จะทำให้มันชัดเจนหรือไม่” ใน Xcode 8.3 beta?
ตั้งแต่เบต้า 8.3 เป็นต้นไปคำเตือน zillions "การแก้ไขสตริงจะสร้างคำอธิบายการดีบักสำหรับค่าที่ไม่บังคับคุณตั้งใจจะทำให้สิ่งนี้ชัดเจนหรือไม่" ปรากฏในรหัสของฉัน ตัวอย่างเช่นคำเตือนปรากฏขึ้นในสถานการณ์ต่อไปนี้ซึ่งตัวเลือกอาจนำไปสู่ศูนย์: let msg = "*** Error \(options["taskDescription"]): cannot load \(sUrl) \(error)" ตามที่ออกแบบไว้ก่อนหน้านี้ฉัน (และคอมไพเลอร์) ก็โอเคสำหรับฉันที่จะแก้ไขตัวเลือกเป็น 'ศูนย์' แต่คอมไพเลอร์เปลี่ยนใจ สิ่งที่คอมไพเลอร์แนะนำคือการเพิ่มตัวสร้างสตริงพร้อมคำอธิบายดังนี้: let msg = "*** Error \(String(describing: options["taskDescription"])): cannot load \(sUrl) \(error)" เห็นได้ชัดว่าผลลัพธ์นั้นชัดเจน แต่ก็ยุ่งยากมากในความคิดของฉัน มีตัวเลือกที่ดีกว่านี้หรือไม่? ฉันต้องแก้ไขคำเตือนเหล่านั้นทั้งหมดหรือดีกว่ารอเบต้าถัดไป

4
Singleton พร้อมคุณสมบัติใน Swift 3
ในเอกสารการใช้ Swift กับ Cocoa และ Objective-Cของ Apple (อัปเดตสำหรับ Swift 3) พวกเขาให้ตัวอย่างรูปแบบ Singleton ต่อไปนี้: class Singleton { static let sharedInstance: Singleton = { let instance = Singleton() // setup code return instance }() } ลองจินตนาการว่าซิงเกิลตันนี้ต้องจัดการสตริงตัวแปร ฉันจะประกาศคุณสมบัตินั้นได้อย่างไร / ที่ไหนและตรวจสอบให้แน่ใจว่าได้เริ่มต้นอย่างถูกต้องไปยัง[String]อาร์เรย์ว่างเปล่า
88 singleton  swift3 

9
ตรวจสอบว่ามีการเปิดใช้บริการตำแหน่งหรือไม่
ฉันได้ทำการค้นคว้าเกี่ยวกับ CoreLocation เมื่อเร็ว ๆ นี้ฉันพบปัญหาที่ครอบคลุมในที่อื่น แต่ใน Objective C และสำหรับ iOS 8 ฉันรู้สึกโง่ที่ถามเรื่องนี้ แต่คุณจะตรวจสอบได้อย่างไรว่าบริการระบุตำแหน่งเปิดใช้งานโดยใช้ swift บน iOS 9 หรือไม่? บน iOS 7 (และอาจจะเป็น 8?) คุณสามารถใช้ได้locationServicesEnabled()แต่ดูเหมือนว่าจะใช้งานไม่ได้เมื่อคอมไพล์สำหรับ iOS 9 แล้วฉันจะทำสิ่งนี้ให้สำเร็จได้อย่างไร? ขอบคุณ!
88 ios  swift  location  ios9  swift3 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.