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

Swift เป็นภาษาการเขียนโปรแกรมสำหรับวัตถุประสงค์ทั่วไปที่ปลอดภัยรวดเร็วและมีการแสดงออกซึ่งพัฒนาโดย Apple Inc. สำหรับแพลตฟอร์มและ Linux Swift เป็นโอเพ่นซอร์ส ใช้แท็กสำหรับคำถามเกี่ยวกับคุณสมบัติภาษาหรือต้องการรหัสใน Swift เท่านั้น ใช้แท็ก [ios], [ipados], [macos], [watch-os], [tvos], [cocoa-touch] และ [cocoa] สำหรับคำถาม (ภาษาที่ไม่เชื่อเรื่องพระเจ้า) เกี่ยวกับแพลตฟอร์มหรือเฟรมเวิร์ก

20
เหตุการณ์การเปลี่ยนแปลงข้อความ UITextField
ฉันจะตรวจจับการเปลี่ยนแปลงข้อความใด ๆ ในฟิลด์ข้อความได้อย่างไร วิธีการมอบหมายให้shouldChangeCharactersInRangeทำงานได้บางอย่าง แต่ก็ไม่ได้ตอบสนองความต้องการของฉันอย่างแน่นอน เนื่องจากจนกว่าจะส่งคืนใช่ข้อความ textField จะไม่สามารถใช้ได้กับวิธีการสังเกตการณ์อื่น ๆ เช่นในรหัสของฉันcalculateAndUpdateTextFieldsไม่ได้รับข้อความที่ปรับปรุงผู้ใช้พิมพ์ เป็นวิธีการของพวกเขาเพื่อรับสิ่งใดเช่นtextChangedJava event handler - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { if (textField.tag == kTextFieldTagSubtotal || textField.tag == kTextFieldTagSubtotalDecimal || textField.tag == kTextFieldTagShipping || textField.tag == kTextFieldTagShippingDecimal) { [self calculateAndUpdateTextFields]; } return YES; }

6
ฉันจะทำให้การอ้างอิงโปรโตคอลที่อ่อนแอใน 'บริสุทธิ์' Swift (ไม่มี @objc) ได้อย่างไร
weakดูเหมือนว่าการอ้างอิงจะไม่ทำงานใน Swift ยกเว้นว่ามีการprotocolประกาศเป็น@objcซึ่งฉันไม่ต้องการในแอพ Swift ที่บริสุทธิ์ รหัสนี้ให้ข้อผิดพลาดในการคอมไพล์ ( weakไม่สามารถใช้กับประเภทที่ไม่ใช่คลาสMyClassDelegate): class MyClass { weak var delegate: MyClassDelegate? } protocol MyClassDelegate { } ฉันต้องนำหน้าโปรโตคอลด้วย@objcแล้วก็ใช้งานได้ คำถาม: อะไรคือวิธีที่รวดเร็ว 'บริสุทธิ์' ในการบรรลุเป้าหมายweak delegate?


22
แปลง Int เป็น String ใน Swift
ฉันพยายามที่จะหาวิธีที่จะใช้Intเป็นStringในสวิฟท์ ฉันหาวิธีแก้ปัญหาโดยใช้NSNumberแต่ฉันชอบคิดออกว่าจะทำทุกอย่างใน Swift อย่างไร let x : Int = 45 let xNSNumber = x as NSNumber let xString : String = xNSNumber.stringValue
554 string  casting  int  converter  swift 

6
เหตุใดอักขระอิโมจิเช่น 👩‍👩‍👧‍👦 จึงมีความแปลกประหลาดในสายของสวิฟท์
อักขระ 👩‍👩‍👧‍👦 (ครอบครัวที่มีผู้หญิงสองคนผู้หญิงหนึ่งคนและเด็กชายหนึ่งคน) ถูกเข้ารหัสเช่นนี้: U+1F469 WOMAN, ‍U+200D ZWJ, U+1F469 WOMAN, U+200D ZWJ, U+1F467 GIRL, U+200D ZWJ, U+1F466 BOY ดังนั้นจึงมีการเข้ารหัสที่น่าสนใจมาก เป้าหมายที่สมบูรณ์แบบสำหรับการทดสอบหน่วย อย่างไรก็ตาม Swift ดูเหมือนจะไม่รู้วิธีจัดการกับมัน นี่คือสิ่งที่ฉันหมายถึง: "👩‍👩‍👧‍👦".contains("👩‍👩‍👧‍👦") // true "👩‍👩‍👧‍👦".contains("👩") // false "👩‍👩‍👧‍👦".contains("\u{200D}") // false "👩‍👩‍👧‍👦".contains("👧") // false "👩‍👩‍👧‍👦".contains("👦") // true ดังนั้นสวิฟท์บอกว่ามันมีตัวเอง (ดี) และเด็กผู้ชาย (ดี!) แต่มันก็บอกว่ามันไม่ได้มีผู้เข้าร่วมหญิงสาวหรือศูนย์กว้าง เกิดอะไรขึ้นที่นี่ เหตุใด Swift จึงรู้ว่ามีเด็กผู้ชาย แต่ไม่ใช่ผู้หญิงหรือผู้หญิง ฉันสามารถเข้าใจได้ว่ามันปฏิบัติตัวมันเป็นตัวละครตัวเดียวและรู้ตัวว่ามันบรรจุตัวมันเอง …
540 swift  string  unicode  emoji 

27
ฉันจะตรวจสอบว่าสตริงมีสตริงอื่นใน Swift ได้อย่างไร
ในObjective-Cรหัสเพื่อตรวจสอบสตริงย่อยในการNSStringคือ: NSString *string = @"hello Swift"; NSRange textRange =[string rangeOfString:@"Swift"]; if(textRange.location != NSNotFound) { NSLog(@"exists"); } แต่ฉันจะทำสิ่งนี้ใน Swift ได้อย่างไร


18
วิธีการเรียงลำดับอาร์เรย์ของวัตถุที่กำหนดเองอย่างรวดเร็วตามค่าคุณสมบัติ
สมมติว่าเรามีคลาสที่กำหนดเองชื่อ imageFile และคลาสนี้มีคุณสมบัติสองอย่าง class imageFile { var fileName = String() var fileID = Int() } จำนวนมากถูกเก็บไว้ใน Array var images : Array = [] var aImage = imageFile() aImage.fileName = "image1.png" aImage.fileID = 101 images.append(aImage) aImage = imageFile() aImage.fileName = "image1.png" aImage.fileID = 202 images.append(aImage) คำถามคือฉันจะเรียงลำดับรูปภาพโดยใช้ 'fileID' ASC หรือ DESC ได้อย่างไร
521 arrays  sorting  swift 

22
เครื่องหมายอัศเจรีย์หมายถึงอะไรในภาษา Swift
คู่มือภาษาโปรแกรม Swiftมีตัวอย่างดังต่อไปนี้: class Person { let name: String init(name: String) { self.name = name } var apartment: Apartment? deinit { println("\(name) is being deinitialized") } } class Apartment { let number: Int init(number: Int) { self.number = number } var tenant: Person? deinit { println("Apartment #\(number) is being deinitialized") } …

30
UIScrollView ความคลุมเครือขนาดเนื้อหาที่เลื่อนได้
เพื่อน devs ฉันมีปัญหากับ AutoLayout ในตัวสร้างส่วนต่อประสาน (Xcode 5 / iOS 7) มันเป็นพื้นฐานและสำคัญมากดังนั้นฉันคิดว่าทุกคนควรรู้วิธีการทำงานอย่างถูกต้อง หากนี่เป็นข้อผิดพลาดใน Xcode มันเป็นสิ่งที่สำคัญมาก! ดังนั้นเมื่อใดก็ตามที่ฉันมีลำดับชั้นการดูเช่นนี้ฉันพบปัญหา: >UIViewController >> UIView >>>UIScrollView >>>>UILabel (or any other comparable UIKit Element) UIScrollView มีข้อ จำกัด ที่มั่นคงเช่น 50 px จากทุกด้าน (ไม่มีปัญหา) จากนั้นฉันเพิ่มข้อ จำกัด ของ Space Space ลงใน UILabel (ไม่มีปัญหา) (และฉันสามารถปักหมุดความสูง / ความกว้างของฉลากได้โดยไม่ต้องเปลี่ยนอะไรเลย แต่ควรจะไม่จำเป็นเนื่องจากขนาดที่แท้จริงของฉลาก) ปัญหาเริ่มต้นขึ้นเมื่อฉันเพิ่มข้อ จำกัด ต่อท้ายใน UILabel: …

10
ทำไมต้องสร้าง“ ตัวเลือก Unwrapped นัย” โดยนัยเนื่องจากนั่นหมายความว่าคุณรู้ว่ามีค่า
ทำไมคุณต้องสร้าง "ตัวเลือก Unwrapped ทางเลือก" โดยปริยายเมื่อสร้างตัวแปรหรือค่าคงที่ปกติ? หากคุณรู้ว่าสามารถถอดออกได้สำเร็จทำไมสร้างตัวเลือกตั้งแต่แรก ตัวอย่างเช่นทำไมจึงเป็นเช่นนี้: let someString: String! = "this is the string" จะเป็นประโยชน์มากกว่า: let someString: String = "this is the string" หาก” ตัวเลือกบ่งชี้ว่าค่าคงที่หรือตัวแปรได้รับอนุญาตให้มี 'ไม่มีค่า'” แต่“ บางครั้งก็ชัดเจนจากโครงสร้างของโปรแกรมที่ตัวเลือกจะมีค่าหลังจากค่านั้นถูกตั้งค่าครั้งแรก” สิ่งที่เป็นจุดของ ทำให้เป็นตัวเลือกในตอนแรกหรือไม่ หากคุณรู้ว่าตัวเลือกจะมีค่าอยู่ตลอดไม่ว่าจะเป็นตัวเลือกหรือไม่

12
การใช้การอนุมาน Swift 3 @objc ในโหมด Swift 4 ถูกคัดค้านหรือไม่?
สั้น ๆ ในขณะที่ใช้ Xcode 9 Beta ฉันพบว่ามีคำเตือนดังต่อไปนี้: การใช้การอนุมาน Swift 3 @objc ในโหมด Swift 4 เลิกใช้แล้ว โปรดระบุที่อยู่ที่คำเตือนการอนุมาน @objc ที่เลิกใช้แล้วทดสอบรหัสของคุณด้วยการเปิดใช้งานการบันทึก“ ใช้การอนุมาน Swift 3 @objc” ที่คัดค้านแล้วและปิดใช้งานการอนุมาน Swift 3 @objc ** หลังจากการวิจัยบางอย่างฉันยังไม่รู้ว่าจะแก้ไขปัญหานี้อย่างไร ฉันขอขอบคุณเคล็ดลับอย่างมากเกี่ยวกับวิธีการแก้ไขปัญหานี้รวมถึงคำอธิบายว่าเกิดอะไรขึ้น เป้าหมายของฉันคือเข้าใจความเข้าใจที่ดีขึ้นว่าเกิดอะไรขึ้นกับรหัสของฉัน

30
ฉันจะสร้าง UIAlertView ใน Swift ได้อย่างไร
ฉันทำงานเพื่อสร้าง UIAlertView ใน Swift แต่ด้วยเหตุผลบางอย่างที่ฉันไม่สามารถรับข้อความได้เนื่องจากฉันได้รับข้อผิดพลาดนี้: ไม่พบโอเวอร์โหลดสำหรับ 'init' ที่ยอมรับอาร์กิวเมนต์ที่ให้มา นี่คือวิธีที่ฉันเขียนมัน: let button2Alert: UIAlertView = UIAlertView(title: "Title", message: "message", delegate: self, cancelButtonTitle: "OK", otherButtonTitles: nil) จากนั้นเรียกมันว่าฉันกำลังใช้: button2Alert.show() ณ ตอนนี้มันพังและฉันก็ดูเหมือนจะไม่ได้รับไวยากรณ์ที่ถูกต้อง

16
ทำไมต้องเลือกวางโครงสร้างบนคลาส?
การเล่นกับ Swift ที่มาจากพื้นหลัง Java ทำไมคุณต้องการเลือก Struct แทนที่จะเป็น Class ดูเหมือนว่าพวกเขาจะเป็นสิ่งเดียวกันโดยมีโครงสร้างที่เสนอฟังก์ชันการทำงานน้อยลง ทำไมต้องเลือกมัน?

16
วิธีการตรวจสอบว่าองค์ประกอบอยู่ในอาร์เรย์
ใน Swift ฉันจะตรวจสอบองค์ประกอบที่มีอยู่ในอาร์เรย์ได้อย่างไร Xcode ไม่มีคำแนะนำใด ๆ สำหรับcontain, includeหรือhas, และการค้นหาอย่างรวดเร็วผ่านหนังสือไม่ปรากฏอะไรเลย มีความคิดวิธีตรวจสอบเรื่องนี้อย่างไร? ฉันรู้ว่ามีวิธีการfindที่ส่งกลับหมายเลขดัชนี แต่มีวิธีที่ส่งกลับแบบบูลเช่นทับทิม#include?หรือไม่? ตัวอย่างของสิ่งที่ฉันต้องการ: var elements = [1,2,3,4,5] if elements.contains(5) { //do something }
475 arrays  swift 

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