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

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

11
LLDB (Swift): ส่งที่อยู่ดิบเป็นประเภทที่ใช้งานได้
มีคำสั่ง LLDB ที่สามารถส่งที่อยู่ดิบลงในคลาส Swift ที่ใช้งานได้หรือไม่ ตัวอย่างเช่น: (lldb) po 0x7df67c50 as MKPinAnnotationView ฉันรู้ว่าที่อยู่นี้ชี้ไปที่ MKPinAnnotationView แต่ไม่ได้อยู่ในกรอบที่ฉันสามารถเลือกได้ แต่ฉันต้องการส่งที่อยู่ดิบลงใน MKPinAnnotationView เพื่อที่ฉันจะได้ตรวจสอบคุณสมบัติของมัน เป็นไปได้หรือไม่
95 ios  swift  lldb 

3
SwiftUI: วิธีใช้งาน init ที่กำหนดเองกับตัวแปร @Binding
ฉันกำลังทำงานกับหน้าจอการป้อนเงินและจำเป็นต้องใช้แบบกำหนดเองinitเพื่อตั้งค่าตัวแปรสถานะตามจำนวนเงินที่เริ่มต้น ฉันคิดว่ามันจะได้ผล แต่ฉันได้รับข้อผิดพลาดของคอมไพเลอร์: Cannot assign value of type 'Binding<Double>' to type 'Double' struct AmountView : View { @Binding var amount: Double @State var includeDecimal = false init(amount: Binding<Double>) { self.amount = amount self.includeDecimal = round(amount)-amount > 0 } ... }
95 swift  swiftui 

6
คลาสย่อยของ Swift UIView
ฉันต้องการคลาสย่อยUIViewและแสดงการเข้าสู่ระบบเช่นมุมมอง ฉันสร้างสิ่งนี้ใน Objective-C แล้ว แต่ตอนนี้ฉันต้องการพอร์ตไปที่ Swift ฉันไม่ได้ใช้สตอรี่บอร์ดดังนั้นฉันจึงสร้าง UI ทั้งหมดในโค้ด initWithCoderแต่ปัญหาแรกคือว่าผมจะต้องดำเนินการ ฉันให้การใช้งานเริ่มต้นเนื่องจากจะไม่มีการเรียกใช้ ตอนนี้เมื่อฉันรันโปรแกรมมันขัดข้องเพราะฉันก็ใช้งานinitWithFrameเช่นกัน ตอนนี้ฉันได้รับสิ่งนี้: override init() { super.init() println("Default init") } override init(frame: CGRect) { super.init(frame: frame) println("Frame init") } required init(coder aDecoder: NSCoder) { super.init(coder: aDecoder) println("Coder init") } คำถามของฉันคือฉันควรสร้างฟิลด์ข้อความ ฯลฯ ที่ไหน ... และถ้าฉันไม่เคยใช้ frame และ coder ฉันจะ "ซ่อน" สิ่งนี้ได้อย่างไร
95 ios  swift 

10
iOS - ไม่พบไฟล์ 'MyProject-Swift.h' เมื่อเรียกใช้การทดสอบหน่วยสำหรับ Swift
ฉันกำลังพยายามตั้งค่าการทดสอบหน่วยสำหรับโครงการของฉัน เป็นแอป Objective-C ที่มีอยู่ซึ่งฉันเพิ่งเพิ่มคลาส Swift ไปหนึ่งคลาส ฉันได้ตั้งค่าไฟล์ 'MyProject-Swift.h' และ Swift Bridging (ทั้ง 'MyProject' และ 'MyProjectTest') และฉันสามารถสร้างและเรียกใช้แอปได้โดยใช้ทั้งรหัส Objective-C และ Swift อย่างไรก็ตามตอนนี้ฉันต้องการเรียกใช้การทดสอบหน่วยในคลาส Swift ใหม่ ฉันตั้งค่าไฟล์ทดสอบและมีลักษณะดังต่อไปนี้: MySwiftClassTests.swift: import UIKit import XCTest import MyProject class MySwiftClassTests: XCTestCase { override func setUp() { super.setUp() // Put setup code here. This method is called before the …

9
ฉันสามารถเปลี่ยนขนาดของ UIActivityIndicator ได้หรือไม่
ไม่ว่าฉันจะให้ขนาดเท่าใดก็ตามในขณะที่จัดสรรจะแสดงขนาดคงที่เท่านั้น สามารถเพิ่มได้หรือไม่? รหัส: activityIndicator = [[UIActivityIndicatorView alloc] initWithFrame: CGRectMake(142.00, 212.00, 80.0, 80.0)]; [[self view] addSubview:activityIndicator]; [activityIndicator sizeToFit]; activityIndicator.autoresizingMask = (UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin); activityIndicator.hidesWhenStopped = YES; activityIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyleWhiteLarge;

11
เปลี่ยนสีของ png ในปุ่ม - iOS
ฉันมีชุดไอคอนที่ฉันสร้างขึ้นซึ่งเป็น PNG สีขาวโปร่งใส: และสิ่งที่ฉันอยากทำคือสามารถย้อมสีให้เป็นสีอื่นได้ เช่นสีฟ้าสีเทาเป็นต้น ฉันสังเกตเห็นว่า "คลิก / แตะ" จะเปลี่ยนเป็นสีเทาโดยอัตโนมัติ ดังนั้นฉันถือว่าฉันสามารถเปลี่ยนสีเทานั้นเป็นอะไรก็ได้ที่ฉันชอบด้วยการแตะหรือสถานะปกติ: อะไรคือวิธีที่ดีที่สุดในการบรรลุเป้าหมายนี้?
95 ios  swift 


5
ฉันจะสร้าง initializer แบบกำหนดเองสำหรับคลาสย่อย UIViewController ใน Swift ได้อย่างไร
ขออภัยหากมีการถามก่อนหน้านี้ฉันได้ค้นหาหลายรอบและคำตอบมากมายมาจาก Swift betas ก่อนหน้านี้เมื่อสิ่งต่างๆแตกต่างออกไป ดูเหมือนจะหาคำตอบที่ชัดเจนไม่ได้ ฉันต้องการคลาสย่อยUIViewControllerและมีตัวเริ่มต้นที่กำหนดเองเพื่อให้ฉันตั้งค่าในโค้ดได้อย่างง่ายดาย ฉันประสบปัญหาในการทำสิ่งนี้ใน Swift ฉันต้องการinit()ฟังก์ชั่นที่ฉันสามารถใช้เพื่อส่งผ่านเฉพาะที่NSURLฉันจะใช้กับตัวควบคุมมุมมอง init(withImageURL: NSURL)ในใจของฉันมันมีลักษณะคล้าย ถ้าฉันเพิ่มฟังก์ชันนั้นจะขอให้ฉันเพิ่มinit(coder: NSCoder)ฟังก์ชันนั้น ฉันเชื่อว่าเป็นเพราะมันถูกทำเครื่องหมายในซูเปอร์คลาสด้วยrequiredคีย์เวิร์ด? ดังนั้นฉันต้องทำใน subclass? ฉันเพิ่มมัน: required init(coder aDecoder: NSCoder) { super.init(coder: aDecoder) } ตอนนี้เป็นอย่างไร เริ่มต้นพิเศษของฉันถือเป็นconvenienceหนึ่งหรือไม่? หนึ่งที่กำหนด? ฉันเรียก super initializer หรือไม่? initializer จากคลาสเดียวกัน? ฉันจะเพิ่มโปรแกรมเริ่มต้นพิเศษของฉันลงในUIViewControllerคลาสย่อยได้อย่างไร

12
คำเตือน“ การแม็ปสถาปัตยกรรม arm64 ถึง x86_64” หมายความว่าอย่างไร
หลังจากย้ายกรอบงานของฉันไปยัง Xcode 10 beta (10L176w) ฉันเริ่มได้รับคำเตือนเช่น: การแม็ปสถาปัตยกรรม arm64 ถึง x86_64 ตรวจสอบให้แน่ใจว่าการตั้งค่าการสร้างสถาปัตยกรรมและสถาปัตยกรรมที่ถูกต้องของเป้าหมายนี้กำหนดค่าอย่างถูกต้องสำหรับแพลตฟอร์ม iOS Simulator ... และ: การแม็ปสถาปัตยกรรม armv7 กับ i386 ตรวจสอบให้แน่ใจว่าการตั้งค่าการสร้างสถาปัตยกรรมและสถาปัตยกรรมที่ถูกต้องของเป้าหมายนี้กำหนดค่าอย่างถูกต้องสำหรับแพลตฟอร์ม iOS Simulator แม้จะมีคำเตือนเหล่านี้การสร้างและหน่วยทดสอบทั้งหมดผ่านตกลง ฉันใช้ Swift 4.2 ถึงกระนั้นคำเตือนเหล่านี้เกี่ยวกับอะไร?
95 ios  swift  xcode  xcode10 

4
Swift: จะใช้ PREPROCESSOR Flags (เช่น "#if DEBUG`) เพื่อใช้คีย์ API ได้อย่างไร
ในObjective-Cบางครั้งการใช้ค่าคงที่สตริงคงที่เพื่อกำหนดคีย์ API ทางเลือก (ตัวอย่างเช่นเพื่อแยกความแตกต่างระหว่างคีย์ RELEASE และ DEBUG สำหรับแพ็คเกจการวิเคราะห์เช่น MixPanel, Flurry หรือ Crashlytics): #if DEBUG static NSString *const API_KEY = @"KEY_A"; #else static NSString *const API_KEY = @"KEY_B"; #endif แล้ว ... [Analytics startSession:API_KEY]; สิ่งนี้แปลเป็น Swift อย่างไรเนื่องจากคอมไพเลอร์ Swift ไม่ใช้ตัวประมวลผลล่วงหน้าอีกต่อไป

9
แมปอาร์เรย์ของวัตถุกับพจนานุกรมใน Swift
ฉันมีอาร์เรย์ของPersonวัตถุ: class Person { let name:String let position:Int } และอาร์เรย์คือ: let myArray = [p1,p1,p3] ฉันต้องการแมปmyArrayให้เป็นพจนานุกรมของ[position:name]โซลูชันแบบคลาสสิกคือ: var myDictionary = [Int:String]() for person in myArray { myDictionary[person.position] = person.name } มีวิธีใดที่สวยงามโดย Swift ในการทำเช่นนั้นด้วยแนวทางการใช้mapงานflatMap... หรือสไตล์ Swift สมัยใหม่อื่น ๆ
95 ios  arrays  swift  dictionary 

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 

19
ป้อนข้อมูลจากแป้นพิมพ์ในแอปพลิเคชันบรรทัดคำสั่ง
ฉันพยายามรับข้อมูลแป้นพิมพ์สำหรับแอปบรรทัดคำสั่งสำหรับภาษาโปรแกรม Apple ใหม่ Swift ฉันสแกนเอกสารแล้วก็ไม่มีประโยชน์ import Foundation println("What is your name?") ??? ความคิดใด ๆ ?

3
หล่อ CGFloat เพื่อลอยใน Swift
ฉันต้องการเก็บค่าเป็น a Floatแต่แหล่งข้อมูลคือCGFloat: let myFloat : Float = myRect.origin.x แต่ผลลัพธ์นี้ทำให้เกิดข้อผิดพลาดของคอมไพเลอร์: 'NSNumber' ไม่ใช่ประเภทย่อย 'Float' ดังนั้นถ้าฉันโยนมันอย่างชัดเจนเช่นนี้: let myFloat : Float = myRect.origin.x as Float แต่สิ่งนี้ทำให้เกิดข้อผิดพลาดของคอมไพเลอร์: 'ไม่สามารถแปลงประเภทของนิพจน์' Float 'เป็น' Float '' อะไรคือวิธีที่ถูกต้องในการดำเนินการและตอบสนองความต้องการของคอมไพเลอร์?
94 casting  swift  cgfloat 

15
ทำการเรียก REST API ใน Swift
ฉันกำลังพยายามใช้ Swift เพื่อโทรไปยัง REST API และพยายามทำตามแบบฝึกหัดมากมาย แต่ไม่สามารถเข้าใจได้ ไม่ว่าจะเป็นเพราะฉันไม่สามารถหาวิธีแปล Obj-C ทั้งหมดเป็น Swift ได้หรือเนื่องจากครึ่งหนึ่งของวิธีการที่ n 'เลิกใช้แล้ว ไม่มีใครรู้วิธีโทรและแยกวิเคราะห์ข้อมูล JSON ที่ส่งคืน
94 ios  swift  rest  api  http 

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