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

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

3
ชื่อเรื่องใหญ่เป็นสวิตช์ชื่อเรื่องขนาดเล็กในแถบนำทางไม่ราบรื่น iOS 13 เหนียว
ฉันมีกับค่าเริ่มต้นของมันUINavigationControllernavigationBar.prefersLargeTitles = true ฉันกำลังเปลี่ยนที่falseเมื่อฉันpush เป็นฉากใหม่ช่วยให้เรียกว่า ( DetailsViewController) viewWillDisappearโดยการเปลี่ยนมันลงไป override func viewWillDisappear(_ animated: Bool) { super.viewWillDisappear(animated) navigationController?.navigationBar.prefersLargeTitles = false } ตอนนี้ในฉันใช้DetailsViewControllerwillMove(to parent:) override func willMove(toParent parent: UIViewController?) { navigationController?.navigationBar.prefersLargeTitles = true } หากต้องการเปลี่ยนกลับเป็นชื่อใหญ่ สังเกตภาพรวมที่แนบมาของวิธีที่iOS 13ทำกับวิธีที่iOS 12ทำอยู่การพิจารณาว่าiOS 12นั้นเป็นพฤติกรรมที่ถูกต้อง iOS 13 : iOS 12 :

5
ใหม่การนำเสนอ Modal iOS 13: การนำเสนอตัวควบคุมไม่ย้ายลง
ฉันมีพฤติกรรมแปลก ๆ เมื่อนำเสนอ UIViewControllers อย่างสุภาพใน iOS 13 รูปแบบการนำเสนอใหม่ที่ฉันเห็นใน iOS 13 มีลักษณะดังนี้: ตัวควบคุมมุมมองการนำเสนอปรากฏขึ้นด้านหลังตัวควบคุมมุมมองการนำเสนอ นอกจากนี้ยังเลื่อนลงเพื่อเลียนแบบ "สแต็ค" ในขณะเดียวกันเมื่อนำเสนอตัวควบคุมมุมมองผ่านแอพของฉันฉันจะได้รับเอฟเฟกต์นี้: ตัวควบคุมมุมมองการนำเสนอไม่ได้เคลื่อนที่เลยเมื่อแสดงตัวควบคุมมุมมองใหม่ ฉันใช้รหัสนี้เพื่อนำเสนอตัวควบคุมมุมมองนี้: let controller = storyboard?.instantiateViewController(withIdentifier: "tutorial") as! TutorialController controller.modalPresentationStyle = .pageSheet controller.modalTransitionStyle = .coverVertical present(controller, animated: true, completion: nil) นี่คือคำถามของฉัน: ฉันสงสัยว่าทำไมสิ่งนี้ถึงเกิดขึ้นและหากมีวิธีที่จะนำเสนอตัวควบคุมมุมมองในรูปแบบ iOS 13 ปกติ (ด้วยตัวควบคุมมุมมองการนำเสนอที่ย้ายกลับมา) ขอบคุณล่วงหน้า!

1
หลังจากอัปเดตเป็นข้อเสนอแนะ iOS 13 (อีเมลหมายเลขโทรศัพท์ชื่อ ... ) สำหรับ UITextField ไม่ปรากฏขึ้นเหนือแป้นพิมพ์
หลังจากอัปเดตอุปกรณ์เป็นคำแนะนำการป้อนข้อมูล iOS 13 สำหรับ inputField (UITextField) เช่นอีเมลหมายเลขโทรศัพท์ชื่อและนามสกุลจะไม่ปรากฏอยู่เหนือแป้นพิมพ์อีกต่อไป รูปภาพแรก iOS 12.4.1 มีอีเมลแนะนำภาพที่สอง iOS 13.1.2 ไม่มีข้อเสนอแนะใด ๆ แอปสาธิตเดียวกันคือสร้างด้วย xCode เวอร์ชัน 11.0 (11A419c) บน iPhone 7 iOS 12.4.1 (ภาพแรกทำงานตามที่คาดไว้) iPhone 7 iOS 13.1.2 (ภาพที่สองไม่มีข้อเสนอแนะด้านบนคีย์บอร์ด) ฉันทดสอบโดยเพิ่ม textContentType ในกระดานเรื่องราวและเพิ่มบรรทัดถัดไปในรหัสโดยตรง email.textContentType = .emailAddress และ
11 ios  swift 

1
เปลี่ยน modalPresentationStyle บน iOS13 บนอินสแตนซ์ UIViewController ทั้งหมดในคราวเดียวโดยใช้วิธีการที่รวดเร็ว
[คำถาม & คำตอบ] เป็นไปได้ไหมที่จะเปลี่ยนUIViewController.modalPresentationStyleค่าทั่วโลกใน iOS 13 ดังนั้นมันจะทำงานเหมือนที่เคยเป็นใน iOS 12 (หรือเก่ากว่า)? ทำไม? ใน iOS SDK 13 ค่าเริ่มต้นของUIViewController.modalPresentationStyleสถานที่ให้บริการมีการเปลี่ยนแปลงจากUIModalPresentationFullScreenไปUIModalPresentationAutomaticซึ่งก็คือเท่าที่ผมรู้ว่ามีมติUIModalPresentationPageSheetในอุปกรณ์ iOS หรืออย่างน้อยบน iPhone เนื่องจากโครงการที่ฉันทำงานมาหลายปีมีขนาดค่อนข้างใหญ่จึงมีสถานที่นับสิบแห่งที่นำเสนอตัวควบคุมมุมมอง สไตล์การนำเสนอใหม่ไม่ตรงกับการออกแบบแอพของเราเสมอไปและบางครั้งก็ทำให้ UI ขาดหายไป นี่คือเหตุผลที่เราตัดสินใจเปลี่ยนUIViewController.modalPresentationStyleกลับไปUIModalPresentationFullScreenเป็นรุ่นก่อนหน้าของ iOS13 SDK แต่การเพิ่มviewController.modalPresentationStyle = UIModalPresentationFullScreenก่อนโทรpresentViewController:animated:completion:ในทุก ๆ สถานที่ที่มีการนำเสนอตัวควบคุมดูเหมือน overkill ยิ่งไปกว่านั้นเรามีเรื่องที่ต้องทำอย่างจริงจังมากขึ้นในเวลานั้นซึ่งเป็นเหตุผลว่าทำไมในขณะนี้หรืออย่างน้อยก็จนกว่าเราจะอัพเดตการออกแบบและแก้ไขปัญหา UI ทั้งหมดเราตัดสินใจที่จะใช้วิธีการแบบว่องไว วิธีแก้ไขปัญหาการทำงานนั้นถูกนำเสนอในคำตอบของฉัน แต่ฉันจะขอบคุณข้อเสนอแนะใด ๆ ที่บอกฉันว่าสิ่งที่ผิดพลาดหรือผลที่ตามมาของวิธีการดังกล่าวอาจจะเป็น
11 ios  objective-c  swift  ios13 

2
แอปพลิเคชัน (…ดำเนินการต่อ userActivity …) วิธีการที่ไม่ได้เรียกใน iOS 13
สวัสดีฉันทำแอป iOS โดยใช้ UniversalLink ยูนิเวอร์แซเชื่อมโยงผลงานดี แต่วิธีการโทรกลับไม่ได้เรียกว่า AppDelegate.swift ของฉันอยู่ด้านล่าง import UIKit @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { // Override point for customization after application launch. return true } func application(_ application: UIApplication, willFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? …
11 ios  swift  ios13 

3
คำเตือน: การเริ่มต้นของ 'UnsafeBufferPointer <T>' จะส่งผลให้มีตัวชี้บัฟเฟอร์ที่ห้อยอยู่
หลังจากอัปเดตเป็น Swift 5.2 / Xcode 11.4 ได้รับคำเตือนรหัสต่อไปนี้: extension Data { init&lt;T&gt;(from value: T) { var value = value let pointer = UnsafeBufferPointer(start: &amp;value, count: 1) self.init(buffer: pointer) } func to&lt;T&gt;(type: T.Type) -&gt; T { return self.withUnsafeBytes { $0.load(as: T.self) } } } ในบรรทัดให้ตัวชี้ = UnsafeBufferPointer (เริ่มต้น: &amp; ค่านับ: 1)ฉันได้รับ การเริ่มต้นของ …

3
การสร้าง Flutter ล้มเหลวไม่พบไฟล์ 'UserAgent.h'
โครงการไม่สามารถสร้างหรือดีบักด้วย firebase_crashlytics ใน mac ของฉันฉันได้อัปเดตเป็น Flutter ล่าสุดแล้ว แต่เครื่องที่เราใช้งานแอพมีเวอร์ชั่นต่ำกว่า (Flutter 1.9.1 hotfix-5) ดังนั้นฉันจึงลองสิ่งต่าง ๆ ด้านล่าง: flutter pub cache repair flutter clean การลบ Podfile.lock และ ios/pod install แต่ไม่มีโชค #import "UserAgent.h" ^~~~~~~~~~~~~ 1 error generated. มีวิธีการแก้ปัญหาโดยไม่อัพเกรดกระพือในขณะนี้หรือไม่

1
ถูกต้องหรือไม่หากคาดว่าการอัปเดตภายในของเครื่องห่อคุณสมบัติ SwiftUI DynamicProperty เพื่อเรียกการอัปเดตมุมมอง
ฉันกำลังพยายามสร้าง wrapper คุณสมบัติที่กำหนดเองที่สนับสนุนโดย SwiftUI ซึ่งหมายความว่าการเปลี่ยนแปลงค่าคุณสมบัติที่สอดคล้องกันจะทำให้การอัปเดตเป็นมุมมอง SwiftUI นี่คือเวอร์ชั่นที่เรียบง่ายของสิ่งที่ฉันมี: @propertyWrapper public struct Foo: DynamicProperty { @ObservedObject var observed: SomeObservedObject public var wrappedValue: [SomeValue] { return observed.value } } ฉันเห็นว่าแม้ว่าฉันObservedObjectจะอยู่ภายในเสื้อคลุมคุณสมบัติที่กำหนดเองของฉัน SwiftUI ยังคงจับการเปลี่ยนแปลงSomeObservedObjectตราบใดที่: เสื้อคลุมทรัพย์สินของฉันเป็น struct เครื่องห่อคุณสมบัติของฉันเป็นไปตาม DynamicProperty โชคไม่ดีที่เอกสารเหล่านั้นกระจัดกระจายและฉันมีเวลาบอกได้ยากว่ามันจะโชคดีแค่ไหนกับการใช้งาน SwiftUI ในปัจจุบัน DynamicPropertyดูเหมือนว่าเอกสารของ(ภายใน Xcode ไม่ใช่ออนไลน์) แสดงว่าคุณสมบัติดังกล่าวเป็นคุณสมบัติที่มีการเปลี่ยนแปลงจากภายนอกทำให้มุมมองการวาดใหม่ แต่ไม่มีการรับประกันเกี่ยวกับสิ่งที่เกิดขึ้นเมื่อคุณปฏิบัติตามประเภทของคุณกับโปรโตคอลนี้ ฉันคาดหวังได้ไหมว่าสิ่งนี้จะทำงานต่อไปในอนาคตของ SwiftUI

1
ฉันจะตรวจสอบคลิกขวาใน SwiftUI ได้อย่างไร
ฉันกำลังเขียนแอพ Mines ง่ายๆเพื่อช่วยให้ฉันรู้จัก SwiftUI ด้วยเหตุนี้ฉันต้องการคลิกหลัก (ปกติคือ LMB) เพื่อ "ขุด" (เปิดเผยว่ามีของฉันอยู่ที่นั่นหรือไม่) และคลิกรอง (โดยทั่วไปคือ RMB) เพื่อวางธง ฉันขุดได้แล้ว! แต่ฉันไม่สามารถหาวิธีวางธงได้เพราะฉันไม่สามารถหาวิธีตรวจจับการคลิกรองได้ นี่คือสิ่งที่ฉันพยายาม : BoardSquareView( style: self.style(for: square), model: square ) .gesture(TapGesture().modifiers(.control).onEnded(self.handleUserDidAltTap(square))) .gesture(TapGesture().onEnded(self.handleUserDidTap(square))) ดังที่ได้กล่าวไว้ก่อนหน้านี้ฟังก์ชั่นที่ส่งกลับโดยhandleUserDidTapเรียกว่าถูกต้องเมื่อคลิก แต่ฟังก์ชั่นที่ส่งกลับโดยจะถูกhandleUserDidAltTapเรียกเฉพาะเมื่อฉันกดปุ่มควบคุมค้างไว้ นั่นเป็นเหตุผลเพราะมันคือรหัสที่บอกว่า ... แต่ฉันไม่เห็น API ใดที่ทำให้ลงทะเบียนการคลิกรองดังนั้นฉันไม่รู้ว่าจะต้องทำอะไรอีก ฉันลองสิ่งนี้ด้วย แต่พฤติกรรมก็เหมือนกัน: BoardSquareView( style: self.style(for: square), model: square ) .gesture(TapGesture().modifiers(.control).onEnded(self.handleUserDidAltTap(square))) .onTapGesture(self.handleUserDidTap(square))

1
NavigationLink หยุดทำงานเมื่อพยายามเข้าชม NavigationLink ก่อนหน้านี้อีกครั้งใน SwiftUI
ฉันกำลังออกแบบแอพที่มีฟังก์ชั่นในการดึงข้อมูล JSON และแสดงรายการของรายการที่ดึงข้อมูลในมุมมองประเภท FileBrowser ในมุมมองนี้ผู้ใช้ควรสามารถคลิกที่โฟลเดอร์เพื่อดำดิ่งลึกลงไปในแผนผังไฟล์หรือคลิกที่ไฟล์เพื่อดูข้อมูลเมตาบางส่วนเกี่ยวกับไฟล์ดังกล่าว ฉันสังเกตว่าขณะที่สิ่งนี้ใช้งานได้เมื่อฉันคลิกที่ไฟล์หรือโฟลเดอร์จากนั้นย้อนกลับไปคลิกอีกครั้ง NavigationLink ไม่ทำงานและฉันติดอยู่ที่มุมมองจนกว่าฉันจะคลิกไปที่ NavigationLink อื่น นี่คือ gif ที่แสดงให้เห็นถึงปัญหานี้ เท่าที่เห็นที่นี่เมื่อฉันคลิกที่ BlahBlah ฉันกำลังเปิดใช้งาน NavigationLink และนำไปที่ BlahBlah จากนั้นเมื่อฉันนำทางกลับไปและพยายามที่จะลบล้างไปที่ BlahBlah มันจะกลายเป็นสีเทาลงทะเบียนว่าฉันคลิกที่มัน ... . การคลิกที่ TestFile แก้ไขปัญหานี้และอนุญาตให้ฉันนำทางกลับไปที่ BlahBlah มีการสร้างไอเท็มรายการด้วยโครงสร้างต่อไปนี้ private struct FileCell{ var FileName: String var FileType: String var FileID: String = "" var isContainer: Bool } private struct constructedCell: …

1
CoreData และ SwiftUI: บริบทในสภาพแวดล้อมไม่ได้เชื่อมต่อกับผู้ประสานงานร้านค้าแบบถาวร
ฉันกำลังพยายามสอนตัวเองข้อมูลหลักโดยการสร้างแอปจัดการการบ้าน รหัสของฉันสร้างได้ดีและแอพทำงานได้ดีจนกระทั่งฉันพยายามเพิ่มการบ้านใหม่ในรายการ ฉันได้รับข้อผิดพลาดนี้Thread 1: EXC_BREAKPOINT (code=1, subcode=0x1c25719e8)ในบรรทัดต่อไปนี้: ForEach(courses, id: \.self) { course in. Context in environment is not connected to a persistent store coordinator: &lt;NSManagedObjectContext: 0x2823cb3a0&gt;คอนโซลนอกจากนี้ยังมีข้อผิดพลาดนี้: ฉันรู้น้อยมากเกี่ยวกับคอร์ข้อมูลและฉันกำลังสูญเสียเป็นสิ่งที่อาจเป็นปัญหา ฉันได้ตั้งค่าเอนทิตี "การมอบหมาย" และ "หลักสูตร" ในรูปแบบข้อมูลโดยที่หลักสูตรมีความสัมพันธ์แบบหนึ่งต่อหลายคนกับการมอบหมาย การมอบหมายแต่ละครั้งจะถูกจัดหมวดหมู่ภายใต้หลักสูตรเฉพาะ นี่คือรหัสสำหรับมุมมองที่เพิ่มการมอบหมายใหม่ให้กับรายการ: struct NewAssignmentView: View { @Environment(\.presentationMode) var presentationMode @Environment(\.managedObjectContext) var moc @FetchRequest(entity: Course.entity(), sortDescriptors: []) var courses: …

2
วิธีการแก้ปัญหา 'scanLocation' ถูกคัดค้านใน iOS 13.0
เมื่อพยายามใช้สแกนเนอร์ฉันได้รับคำเตือนว่า 'scanLocation' เลิกใช้แล้วใน iOS 13.0 เนื่องจากความสามารถในการสแกนจากตำแหน่งต่อไปนั้นค่อนข้างพื้นฐานในการสแกน String สงสัยว่าจะใช้อะไรแทน scanLocation เอกสารประกอบสำหรับสแกนเนอร์ของ Apple ไม่ได้กล่าวถึงการคัดค้าน แต่อย่างเดียวแนะนำว่าอะไรเกิดขึ้นที่ตำแหน่งสแกน ตัวอย่างการใช้ scanLocation ซึ่งเลิกใช้แล้ว: while !scanner.isAtEnd { print(scanner.scanUpToCharacters(from: brackets)) let block = scanner.string[scanner.currentIndex...] print(block) scanner.scanLocation = scanner.scanLocation + 1 }
10 swift  foundation 

4
วิธีการปรับใช้การแปลใน Swift UI
ใครช่วยฉันได้บ้าง ฉันไม่พบรายละเอียดของการแปลใน Swift UI ทุกคนสามารถให้คำแนะนำหรือยกตัวอย่างวิธีการแปลเป็นภาษาท้องถิ่นได้ดีขึ้นText()หรือไม่

5
iOS13 บนหน้าจอ Xcode 11 Black แม้หลังจากเพิ่ม SceneDelegate และอัปเดต Info.plist
ขณะนี้ฉันกำลังรับหน้าจอว่างด้วย Xcode 11, Target iOS 13.0 (แอปทำงานได้ดีกับ iOS ทุกรุ่นที่ต่ำกว่า 12.1 จนถึง 12.4) ฉันต้องการให้แอปของฉันทำงานได้ทั้งผู้ใช้ iOS 12.1 ขึ้นไปและ 13.0 เพิ่ม SceneDelegate ด้านล่างให้กับโครงการที่มีอยู่ของฉันและ การเพิ่มไฟล์ Manifest ของแอพ import UIKit import SwiftUI @available(iOS 13.0, *) class SceneDelegate: UIResponder, UIWindowSceneDelegate { var window: UIWindow? func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { //guard …

3
Swiftui - ฉันจะเริ่มต้น Obbject ที่สังเกตได้โดยใช้ environmentobject เป็นพารามิเตอร์ได้อย่างไร
ฉันไม่แน่ใจว่านี่เป็นปฏิปักษ์ในโลก SwiftUI ใหม่ที่กล้าหาญที่เราอาศัยอยู่ แต่โดยพื้นฐานแล้วฉันมี @EnvironmentObject พร้อมกับข้อมูลผู้ใช้พื้นฐานบางอย่างที่บันทึกไว้ในมุมมองของฉันที่สามารถโทรได้ ฉันยังมี @ObservedObject ซึ่งเป็นเจ้าของข้อมูลบางอย่างที่จำเป็นสำหรับมุมมองนี้ เมื่อมุมมองปรากฏขึ้นฉันต้องการใช้ @EnvironmentObject เพื่อเริ่มต้น @ObservedObject: struct MyCoolView: View { @EnvironmentObject userData: UserData @ObservedObject var viewObject: ViewObject = ViewObject(id: self.userData.UID) var body: some View { Text("\(self.viewObject.myCoolProperty)") } } น่าเสียดายที่ฉันไม่สามารถเรียกตนเองว่าตัวแปรสภาพแวดล้อมจนกว่าจะเริ่มต้น: "ไม่สามารถใช้สมาชิกอินสแตนซ์ 'userData' ภายในคุณสมบัติตัวเริ่มต้นคุณสมบัติตัวเริ่มต้นคุณสมบัติที่เรียกใช้ก่อนที่ 'ตัวเอง' จะพร้อมใช้งาน" ฉันเห็นเส้นทางที่เป็นไปได้สองสามทาง แต่พวกเขาทั้งหมดรู้สึกเหมือนแฮ็ก ฉันจะเข้าใกล้สิ่งนี้ได้อย่างไร
9 ios  swift  swiftui  xcode11 

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