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

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

11
การแจ้งเตือนแบบพุช iOS: จะตรวจสอบได้อย่างไรว่าผู้ใช้แตะการแจ้งเตือนเมื่อแอปอยู่ในพื้นหลัง
มีเธรด stackoverflow มากมายเกี่ยวกับหัวข้อนี้ แต่ฉันยังไม่พบวิธีแก้ปัญหาที่ดี หากแอปไม่ได้อยู่ในพื้นหลังที่ฉันสามารถตรวจสอบlaunchOptions[UIApplicationLaunchOptionsRemoteNotificationKey]ในapplication:didFinishLaunchingWithOptions:การเรียกร้องให้ดูว่ามันเปิดจากการแจ้งเตือน หากแอปอยู่เบื้องหลังโพสต์ทั้งหมดแนะนำให้ใช้application:didReceiveRemoteNotification:และตรวจสอบสถานะแอปพลิเคชัน แต่จากที่ฉันทดลอง (และตามชื่อของ API นี้) วิธีนี้จะถูกเรียกเมื่อได้รับการแจ้งเตือนแทนที่จะแตะ ดังนั้นปัญหาคือหากเปิดแอปแล้วจึงเป็นพื้นหลังและคุณรู้ว่าได้รับการแจ้งเตือนจากapplication:didReceiveNotification( application:didFinishLaunchWithOptions:จะไม่เรียกใช้ ณ จุดนี้) คุณจะรู้ได้อย่างไรว่าผู้ใช้กลับมาใช้งานแอปต่อโดยแตะที่การแจ้งเตือนหรือเพียงแค่แตะ ไอคอนแอพ? เนื่องจากหากผู้ใช้แตะการแจ้งเตือนความคาดหวังคือการเปิดหน้าที่กล่าวถึงในการแจ้งเตือนนั้น มิฉะนั้นก็ไม่ควร ฉันสามารถใช้handleActionWithIdentifierสำหรับการแจ้งเตือนการดำเนินการที่กำหนดเองได้ แต่สิ่งนี้จะถูกทริกเกอร์ก็ต่อเมื่อมีการแตะปุ่มการทำงานที่กำหนดเองไม่ใช่เมื่อผู้ใช้แตะที่เนื้อหาหลักของการแจ้งเตือน ขอบคุณ แก้ไข: หลังจากอ่านคำตอบด้านล่างฉันคิดว่าด้วยวิธีนี้ฉันสามารถชี้แจงคำถามของฉันได้: เราจะแยกแยะสถานการณ์ 2 สถานการณ์นี้ได้อย่างไร: (A) 1. แอปไปที่พื้นหลัง 2. ได้รับการแจ้งเตือน; 3. ผู้ใช้แตะที่การแจ้งเตือน 4. แอพเข้าสู่เบื้องหน้า (B) 1. แอปไปที่พื้นหลัง 2. ได้รับการแจ้งเตือน; 3. ผู้ใช้ละเว้นการแจ้งเตือนและแตะที่ไอคอนแอพในภายหลัง 4. แอพเข้าสู่เบื้องหน้า เนื่องจากapplication:didReceiveRemoteNotification:ถูกทริกเกอร์ในทั้งสองกรณีในขั้นตอนที่ 2 หรือควรapplication:didReceiveRemoteNotification:จะถูกเรียกใช้ในขั้นตอนที่ 3 สำหรับ …

5
วิธีรับเขตเวลาของผู้ใช้
มีใครรู้วิธีรับเขตเวลาของผู้ใช้ใน Swift บ้าง? ฉันได้รับเวลาที่เฉพาะเจาะจงบางอย่างในทีวีจากฐานข้อมูลจากนั้นจำเป็นต้องลบ / เพิ่มจากที่ที่พวกเขาอยู่เพื่อแสดงเวลาที่ถูกต้อง
116 ios  xcode  swift  macos  nstimezone 

5
การนำเข้าโปรโตคอล Swift ในคลาส Objective-C
ฉันพยายามที่จะนำเข้าพิธีสาร Swift ชื่อAnalyticProtocolลงในระดับ Objective-C AnalyticFactoryชื่อ protocol AnalyticProtocol { } ฉันเริ่มต้นจากโปรเจ็กต์ Objective-C ที่มีอยู่ (ฉันไม่ได้สร้างโปรเจ็กต์ Swift ใหม่ด้วย xCode และฉันไม่พบวิธีกำหนดค่าโปรเจ็กต์ Objective-C ของฉันให้เป็นโปรเจ็กต์ Swift ใน xCode 6 ) สวิฟท์ในแฟ้มของฉันฉันรวมถึง.hไฟล์ชื่อMyProjectName-Swift.hแต่กลับมาเรียบเรียงฉันมีข้อผิดพลาดบอกฉันว่ามันไม่ได้อยู่ ฉันจึงสร้าง.hไฟล์ชื่อMyProjectName-Swift.hที่ว่างเปล่า (ฉันไม่รู้ว่าควรใส่อะไรไว้ข้างใน) ในเอกสารของ Appleพวกเขาบอกว่าฉันต้องรวม.hไฟล์ที่มีชื่อMyProjectName-Swift.hอยู่ใน.mไฟล์ของฉัน แต่ฉันไม่จำเป็นต้องรวมไว้ใน.mไฟล์ของฉันแต่เป็นไฟล์.h. สิ่งนี้อาจเป็นปัญหาได้หรือไม่? เมื่อฉันพยายามรวบรวมฉันพบข้อผิดพลาดนี้:: 0: error: xxxAnalyticFactory.h: 39: ไม่พบการประกาศโปรโตคอลสำหรับ 'AnalyticProtocol' และรหัสที่กล่าวหา: @interface AnalyticFactory : NSObject { Class<AnalyticProtocol> _analyticProtocolClass; // The type of …
116 objective-c  swift 

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 


12
วิธีสร้าง UILabel โดยใช้โปรแกรม Swift
ฉันจะสร้างไฟล์ UILabelโปรแกรมโดยใช้ Swift ใน Xcode 6 ได้อย่างไร ฉันได้เริ่มต้นด้วย "Single View Application" ใหม่ใน Xcode 6 และเลือก Swift สำหรับโปรเจ็กต์นี้ ฉันมีไฟล์ของฉันAppDelegate.swiftและViewController.swiftฉันไม่แน่ใจว่าจะทำจากที่นี่
115 ios  swift 

11
Xcode 6 พร้อมด้วย Swift super slow tyre และ autocompletion
เป็นเพียงฉันหรือ Xcode 6 (6.0.1) กับ Swift ดูเหมือนว่าจะช้ามากเมื่อคุณพิมพ์รหัสโดยเฉพาะอย่างยิ่งกับการเติมข้อความอัตโนมัติ คลาส Objective-C ปกติแม้ว่าจะอยู่ในโปรเจ็กต์ Swift แต่ก็ทำงานได้เกือบเหมือนเดิมดังนั้น Swift จึงฆ่ามัน มีใครเจอความไม่สะดวกแบบเดียวกันบ้างไหม? คุณมีความคิดในการปรับปรุงประสิทธิภาพหรือไม่? ฉันพยายามเล่นกับการตั้งค่าบางอย่าง แต่โชคไม่ดี แน่นอนฉันได้ลองรีสตาร์ท Xcode และคอมพิวเตอร์โดยไม่มีโชค ไม่มีแอปอื่น ๆ เปิดอยู่ ฉันใช้ Macbook Pro กลางปี ​​2009 (2.26 GHz Intel Core 2 Duo) ที่มี RAM 8GB และ SSD HD ซึ่งไม่ใช่สิ่งใหม่ล่าสุดเลย แต่ก็ยังไม่เป็นขยะสมบูรณ์ เป็นเรื่องน่าเสียดายที่ฉันรู้สึกตื่นเต้นที่ได้เริ่มใช้ Swift และตอนนี้ก็ทนไม่ได้จริงๆ ความคิด / เคล็ดลับ?

15
ฉันจะเข้ารหัสสตริงเป็น Base64 ใน Swift ได้อย่างไร
ฉันต้องการแปลงสตริงเป็น Base64 ฉันพบคำตอบในหลายที่ แต่มันใช้ไม่ได้อีกต่อไปใน Swift ฉันใช้ Xcode 6.2 ฉันเชื่อว่าคำตอบอาจใช้ได้กับ Xcode เวอร์ชันก่อนหน้าไม่ใช่ Xcode 6.2 ใครช่วยแนะนำฉันให้ทำใน Xcode 6.2 ได้ไหม คำตอบที่ฉันพบคือสิ่งนี้ แต่ใช้ไม่ได้ใน Xcode เวอร์ชันของฉัน: var str = "iOS Developer Tips encoded in Base64" println("Original: \(str)") // UTF 8 str from original // NSData! type returned (optional) let utf8str = str.dataUsingEncoding(NSUTF8StringEncoding) // Base64 encode …
115 swift  base64 

2
รับวันที่ปัจจุบันใน Swift 3 หรือไม่ [ปิด]
ปิด . คำถามนี้ต้องการรายละเอียดหรือความคมชัด ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่เพิ่มรายละเอียดและชี้แจงปัญหาโดยแก้ไขโพสต์นี้ ปิดให้บริการเมื่อ3 ปีที่แล้วปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันจะตั้งวันที่ปัจจุบัน label.text ใน Swift 3 ได้อย่างไร ฉันต้องการพิมพ์แค่วันนี้ไปที่หน้าจอ ฉันไม่พบวิธีการทำเช่นนั้น ใน c # นั้นง่ายมาก: var date = DateTime.Now ฉันต้องเขียน 15.09.2016 ใน swift 3 ขอบคุณ
115 swift  nsdate 

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 = "" }

22
Swift Framework: ไม่พบส่วนหัวของ Umbrella '[…] .h'
ในกรอบที่กำหนดเองที่มีทั้งObjective-Cและสวิฟท์รหัสคอมไพเลอร์สวิฟท์โยนข้อผิดพลาดต่อไปนี้: [build_path]/unextended-module.modulemap:2:19: error: umbrella header 'bugtest.h' not found umbrella header "bugtest.h" ^ <unknown>:0: error: could not build Objective-C module 'bugtest'

8
จะสร้างการแจ้งเตือนในเครื่องได้อย่างไร?
ฉันจะตั้งค่าการแจ้งเตือนในเครื่องได้อย่างไรเพื่อให้แอปของฉันสร้างการแจ้งเตือน / การแจ้งเตือนด้วยข้อความที่กำหนดเองในขณะที่ตั้งค่าไว้

6
บันทึกรูปภาพลงในโฟลเดอร์เอกสารแอปพลิเคชันจาก UIView บน IOS
ฉันมี UIImageView ที่อนุญาตให้ผู้ใช้วางภาพค้างไว้จนกว่าจะสามารถบันทึกได้ ปัญหาคือฉันคิดไม่ออกว่าจะบันทึกและดึงภาพที่ฉันวางไว้ในมุมมองได้อย่างไร ฉันได้ดึงข้อมูลและวางภาพใน UIImageView ดังนี้: //Get Image - (void) getPicture:(id)sender { UIImagePickerController *picker = [[UIImagePickerController alloc] init]; picker.delegate = self; picker.allowsEditing = YES; picker.sourceType = (sender == myPic) ? UIImagePickerControllerSourceTypeCamera : UIImagePickerControllerSourceTypeSavedPhotosAlbum; [self presentModalViewController:picker animated:YES]; [picker release]; } - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage (UIImage *)image editingInfo:(NSDictionary *)editingInfo { myPic.image …

10
ฉันจะรับคีย์ที่ดัชนีเฉพาะจากพจนานุกรมใน Swift ได้อย่างไร
ฉันมีDictionaryใน Swift และฉันต้องการรับคีย์ที่ดัชนีเฉพาะ var myDict : Dictionary<String,MyClass> = Dictionary<String,MyClass>() ฉันรู้ว่าฉันสามารถย้ำคีย์และบันทึกได้ for key in myDict.keys{ NSLog("key = \(key)") } อย่างไรก็ตามแปลกพอสิ่งนี้เป็นไปไม่ได้ var key : String = myDict.keys[0] ทำไม?
114 ios  dictionary  swift 

18
ไม่สามารถถอดคิวเซลล์ที่มีตัวระบุเซลล์ - ต้องลงทะเบียนปลายปากกาหรือคลาสสำหรับตัวระบุหรือเชื่อมต่อเซลล์ต้นแบบในสตอรีบอร์ด
ฉันค่อนข้างใหม่กับการเขียนโค้ดโดยทั่วไปและยังใหม่กับ Xcode (Swift) มาก ฉันเข้าใจว่าฉันจำเป็นต้องลงทะเบียนหัวปากกาหรือชั้นเรียน แต่ฉันไม่เข้าใจว่า 'ที่ไหนหรืออย่างไร' import UIKit class NotesListViewController: UITableViewController { @IBOutlet weak var menuButton: UIBarButtonItem! override func viewDidLoad() { super.viewDidLoad() NSNotificationCenter.defaultCenter().addObserver(self, selector: "preferredContentSizeChanged:", name: UIContentSizeCategoryDidChangeNotification, object: nil) // Side Menu if self.revealViewController() != nil { menuButton.target = self.revealViewController() menuButton.action = "revealToggle:" self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer()) } } override func viewDidAppear(animated: …
114 ios  swift  iphone  xcode6 

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