รับ Bundle Identifier โดยทางโปรแกรมใน Swift หรือไม่


คำตอบ:


209

ลองสิ่งนี้:

let bundleID = NSBundle.mainBundle().bundleIdentifier

Swift 3+:

let bundleID = Bundle.main.bundleIdentifier

20
คุณรู้bundleIdentifierหรือไม่ว่าเหตุใดจึงเป็นทางเลือก? ในกรณีใดได้nilบ้าง?
Alexander - คืนสถานะ Monica

บางครั้งมันไม่ได้เกี่ยวกับว่าในกรณีใดบ้างที่อาจเป็นศูนย์เมื่อถึงการพัฒนาระดับสูง แต่ในกรณีที่อาจเป็นศูนย์ภายใต้ประทุน
Sethmr

2
@Alexander เมื่อไม่ใช่มัดหลักหรือCFBundleIdentifierขาดหายไป
ArtFeel

6

มันค่อนข้างเหมือนกันใน Swift ยกเว้นชื่อคลาสและเมธอดถูกย่อให้สั้นลง:

let bundleIdentifier = Bundle.main.bundleIdentifier // return type is String?

5

หากคุณกำลังพยายามรับมันโดยทางโปรแกรมคุณสามารถใช้บรรทัดโค้ดด้านล่าง:

วัตถุประสงค์ -C:

NSString *bundleIdentifier = [[NSBundle mainBundle] bundleIdentifier];

Swift 3.0:

let bundleIdentifier =  Bundle.main.bundleIdentifier

อัปเดตเพื่อความรวดเร็วล่าสุดสามารถใช้งานได้กับทั้งแอป iOS และ Mac

สำหรับข้อมูลเพิ่มเติมตรวจสอบที่นี่:

เอกสารของ Apple: https://developer.apple.com/documentation/foundation/bundle#//apple_ref/occ/instm/NSBundle/bundleIdentifier


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