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

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

5
จะส่งผ่านข้อมูลโดยใช้ NotificationCenter ใน swift 3.0 และ NSNotificationCenter ใน swift 2.0 ได้อย่างไร
ฉันกำลังใช้งานsocket.ioในแอพ iOS ที่รวดเร็วของฉัน ขณะนี้อยู่ในแผงควบคุมหลายแผงฉันกำลังฟังเซิร์ฟเวอร์และรอข้อความเข้า ฉันกำลังเรียกใช้getChatMessageฟังก์ชันในแต่ละแผง: func getChatMessage(){ SocketIOManager.sharedInstance.getChatMessage { (messageInfo) -> Void in dispatch_async(dispatch_get_main_queue(), { () -> Void in //do sth depending on which panel user is }) } } อย่างไรก็ตามฉันสังเกตเห็นว่ามันเป็นวิธีการที่ผิดและฉันจำเป็นต้องเปลี่ยน - ตอนนี้ฉันต้องการเริ่มฟังข้อความขาเข้าเพียงครั้งเดียวและเมื่อมีข้อความเข้ามาให้ส่งข้อความนี้ไปยังแผงควบคุมที่รับฟัง ดังนั้นฉันต้องการส่งข้อความขาเข้าผ่าน NSNotificationCenter จนถึงตอนนี้ฉันสามารถส่งข้อมูลว่ามีบางอย่างเกิดขึ้น แต่ไม่สามารถส่งผ่านข้อมูลได้ ฉันกำลังทำโดย: NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(ViewController.showSpinningWheel(_:)), name: showSpinner, object: nil) จากนั้นฉันมีฟังก์ชั่นที่เรียกว่า: func showSpinningWheel(notification: NSNotification) { …

11
กำลังลงทะเบียนสำหรับการแจ้งเตือนแบบพุชใน Xcode 8 / Swift 3.0 หรือไม่
ฉันกำลังพยายามให้แอปทำงานในXcode 8.0และพบข้อผิดพลาด ฉันรู้ว่ารหัสนี้ใช้งานได้ดีในเวอร์ชันก่อนหน้าของ swift แต่ฉันสมมติว่ารหัสนี้มีการเปลี่ยนแปลงในเวอร์ชันใหม่ นี่คือรหัสที่ฉันพยายามเรียกใช้: let settings = UIUserNotificationSettings(forTypes: [.Sound, .Alert, .Badge], categories: nil) UIApplication.sharedApplication().registerUserNotificationSettings(settings) UIApplication.shared().registerForRemoteNotifications() ข้อผิดพลาดที่ฉันได้รับคือ "ป้ายกำกับอาร์กิวเมนต์ '(forTypes :, หมวดหมู่ :)' ไม่ตรงกับการโอเวอร์โหลดใด ๆ ที่มีอยู่" มีคำสั่งอื่นที่ฉันสามารถลองเพื่อให้มันใช้งานได้หรือไม่?

9
เลิกใช้พารามิเตอร์ 'var' และจะถูกลบออกใน Swift 3
เอาล่ะฉันเพิ่งอัปเดต Xcode เป็น 7.3 และตอนนี้ฉันได้รับคำเตือนนี้: เลิกใช้พารามิเตอร์ 'var' และจะถูกลบออกใน Swift 3 วิธีแก้ไขเมื่อฉันต้องการใช้ var ในฟังก์ชันนี้: public func getQuestionList(var language: String) -> NSArray { if self.data.count > 0 { if (language.isEmpty) { language = "NL" } return self.data.objectForKey("questionList" + language) as! NSArray } return NSArray() }
120 xcode  swift  xcode7  swift3 

15
วิธีแก้ไข“ SWIFT_VERSION '3.0' ไม่รองรับเวอร์ชันที่รองรับคือ 4.0, 4.2, 5.0” เกิดข้อผิดพลาดใน Xcode 10.2
ฉันพยายามเรียกใช้ที่ดาวน์โหลดจากแอพพยายามเปิดใน Xcode และมีข้อผิดพลาด: "การแสดงข้อความล่าสุด : -1: SWIFT_VERSION" 3.0 "ไม่รองรับเวอร์ชันที่รองรับคือ 4.0, 4.2, 5.0 (ในเป้าหมาย" SimpleWeather ")"
118 xcode  swift3  xcode10.2 

8
Xcode 9 เวอร์ชันภาษา Swift (SWIFT_VERSION)
ฉันเพิ่งอัปเดต xcode เป็นเวอร์ชัน 9 ก่อนหน้านั้นใน Xcode 8.x เมื่อใดก็ตามที่ฉันใช้เพื่อpod updateแสดงรหัสอัปเดตเพื่อแปลงรหัสเป็น Swift 3 และทำการแก้ไขข้อผิดพลาด แต่ตอนนี้มันทำให้ฉันเกิดข้อผิดพลาดนี้: ต้องตั้งค่าการสร้าง "เวอร์ชันภาษา Swift" (SWIFT_VERSION) เป็นค่าที่รองรับสำหรับเป้าหมายที่ใช้ Swift การตั้งค่านี้สามารถตั้งค่าได้ในตัวแก้ไขการตั้งค่าบิลด์ สำหรับข้อผิดพลาดนี้ฉันได้ลองBuild Settings > Swift Language Versionแล้วและเป็น Swift 3.2 แต่เนื่องจากการโทรอัปเดตได้ติดตั้งพ็อดบางตัวเช่น Alamofire อีกครั้งและแจ้งว่าให้ติดตั้ง Xcode 8.x เพื่อแปลงรหัสเป็น Swift 3 ดังนั้นฉันจึงต้องติดตั้ง รุ่นเพิ่มเติมที่มี Xcode ล่าสุด? ถ้าใช่ฉันจะติดตั้ง Xcode 8 กับ Xcode 9 ได้อย่างไร
115 ios  swift  xcode  swift3  xcode9 

4
ความแตกต่างระหว่าง DispatchQueue.main.async และ DispatchQueue.main.sync
ฉันใช้DispatchQueue.main.asyncมานานเพื่อดำเนินการที่เกี่ยวข้องกับ UI Swift จัดเตรียมทั้งDispatchQueue.main.asyncและและDispatchQueue.main.syncและทั้งสองอย่างจะดำเนินการในคิวหลัก ใครช่วยบอกความแตกต่างระหว่างพวกเขาได้ไหม ฉันควรใช้แต่ละครั้งเมื่อใด DispatchQueue.main.async { self.imageView.image = imageView self.lbltitle.text = "" } DispatchQueue.main.sync { self.imageView.image = imageView self.lbltitle.text = "" }

13
คุณสร้างการแจ้งเตือนแบบกำหนดเองใน Swift 3 ได้อย่างไร
ใน Objective-C การแจ้งเตือนที่กำหนดเองเป็นเพียง NSString ธรรมดา แต่ไม่ชัดเจนใน Swift 3 เวอร์ชัน WWDC ว่าควรจะเป็นอย่างไร

4
พิมพ์โดยไม่ขึ้นบรรทัดใหม่อย่างรวดเร็ว
ใน swift 2.0 print()จะเพิ่มอักขระขึ้นบรรทัดใหม่โดยอัตโนมัติ ใน Swift 1.2 println()และprint()เคยเป็นฟังก์ชันแยกกัน ดังนั้นฉันจะพิมพ์ข้อความและไม่เพิ่มบรรทัดใหม่ได้อย่างไรเนื่องจาก swift ไม่มีฟังก์ชันการพิมพ์ที่ไม่ต่อท้ายบรรทัดใหม่อีกต่อไป
110 swift  swift3  swift2 

25
ข้อผิดพลาด: ไม่สามารถสร้างโมดูล Objective-C "Firebase"
เมื่อฉันรวบรวมแอปพลิเคชันฉันได้รับข้อผิดพลาดเท่ากับสิ่งนี้: ไม่สามารถสร้างโมดูล Objective-C "Firebase" ข้อผิดพลาดนี้ปรากฏในimport Firebaseไฟล์ของฉันอย่างรวดเร็ว
110 firebase  swift3  xcode8  ios10 

6
จะตรวจสอบเธรดปัจจุบันใน Swift 3 ได้อย่างไร
ฉันจะตรวจสอบได้อย่างไรว่าอันไหนคือเธรดปัจจุบันใน Swift 3 ใน Swift เวอร์ชันก่อนหน้าคุณสามารถตรวจสอบได้ว่าเธรดปัจจุบันเป็นเธรดหลักหรือไม่โดยทำสิ่งนี้: NSThread.isMainThread()

3
วิธีการที่ไม่ใช่ '@ objc' ไม่เป็นไปตามข้อกำหนดทางเลือกของโปรโตคอล '@objc'
ภาพรวม: ฉันมีโปรโตคอล P1 ซึ่งจัดเตรียมการใช้งานตามค่าเริ่มต้นของฟังก์ชันเสริม Objective-C อย่างใดอย่างหนึ่ง เมื่อฉันจัดเตรียมการใช้งานฟังก์ชันเสริมเริ่มต้นจะมีคำเตือน คำเตือนของคอมไพเลอร์: Non-'@objc' method 'presentationController(_:viewControllerForAdaptivePresentationStyle:)' does not satisfy optional requirement of '@objc' protocol 'UIAdaptivePresentationControllerDelegate' เวอร์ชัน: สวิฟต์: 3 Xcode: 8 (เผยแพร่สู่สาธารณะ) ความพยายามที่ทำ: พยายามเพิ่ม@objcแต่ไม่ช่วย คำถาม: ฉันจะแก้ไขปัญหานี้ได้อย่างไร มีงานทำไหม? รหัส: @objc protocol P1 : UIAdaptivePresentationControllerDelegate { } extension P1 where Self : UIViewController { func presentationController(_ controller: UIPresentationController, …

5
“% ไม่พร้อมใช้งาน: ใช้ truncatingRemainder แทน” หมายความว่าอย่างไร
ฉันได้รับข้อผิดพลาดต่อไปนี้เมื่อใช้โค้ดสำหรับส่วนขยายฉันไม่แน่ใจว่าพวกเขาขอให้ใช้ตัวดำเนินการอื่นหรือแก้ไขค่าในนิพจน์ตามการค้นหาทางอินเทอร์เน็ต ข้อผิดพลาด:% ไม่พร้อมใช้งาน: ใช้ truncatingRemainder แทน รหัสส่วนขยาย: extension CMTime { var durationText:String { let totalSeconds = CMTimeGetSeconds(self) let hours:Int = Int(totalSeconds / 3600) let minutes:Int = Int(totalSeconds % 3600 / 60) let seconds:Int = Int(totalSeconds % 60) if hours > 0 { return String(format: "%i:%02i:%02i", hours, minutes, seconds) } else …
105 ios  swift  swift3  modulus 

9
จะใช้ประเภทนี้กับอินสแตนซ์ NSFetchRequest ได้อย่างไร
ใน Swift 2 รหัสต่อไปนี้ใช้งานได้: let request = NSFetchRequest(entityName: String) แต่ใน Swift 3 ให้ข้อผิดพลาด: ไม่สามารถอนุมานพารามิเตอร์ทั่วไป "ResultType" ได้ เพราะNSFetchRequestตอนนี้เป็นประเภททั่วไป ในเอกสารของพวกเขาพวกเขาเขียนสิ่งนี้: let request: NSFetchRequest<Animal> = Animal.fetchRequest ดังนั้นหากคลาสผลลัพธ์ของฉันเป็นตัวอย่างLevelฉันจะขออย่างถูกต้องได้อย่างไร เนื่องจากไม่ได้ผล: let request: NSFetchRequest<Level> = Level.fetchRequest
102 swift  core-data  swift3 

5
รอจนกว่างานจะเสร็จสิ้น
ฉันจะทำให้รหัสของฉันรอจนกว่างานใน DispatchQueue จะเสร็จสิ้นได้อย่างไร มันต้องการ CompletionHandler หรืออะไร? func myFunction() { var a: Int? DispatchQueue.main.async { var b: Int = 3 a = b } // wait until the task finishes, then print print(a) // - this will contain nil, of course, because it // will execute before the code above } …

14
Swift 3 - การเปรียบเทียบวัตถุวันที่
ฉันกำลังอัปเดตแอปของฉันเป็นไวยากรณ์ Swift 3.0 (ฉันรู้ว่ามันยังอยู่ในเบต้า แต่ฉันต้องการเตรียมพร้อมทันทีที่เปิดตัว) จนกระทั่งเบต้าก่อนหน้าของ Xcode (Beta 5) ผมสามารถที่จะเปรียบเทียบสองDateวัตถุที่ใช้ถูกดำเนิน<, และ> ==แต่ในเบต้าล่าสุด (เบต้า 6) จะไม่ทำงานอีกต่อไป นี่คือภาพหน้าจอบางส่วน: ดังที่คุณเห็นในภาพหน้าจอทั้งสองสิ่งนี้เป็นDateวัตถุสองชิ้น แต่ฉันได้รับข้อผิดพลาดต่อไปนี้: ผมทำอะไรผิดหรือเปล่า? ฟังก์ชันยังคงประกาศอยู่ในDateคลาส: static func >(Date, Date) ส่งคืนค่าจริงหากวันที่ทางซ้ายมือช้ากว่าวันที่ทางขวามือ นี่เป็นเพียงข้อผิดพลาดของเบต้าหรือฉันทำอะไรผิด?
99 ios  xcode  swift3  beta 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.