2014-09-02 13 views
9

Tôi muốn nhận thư mục nơi tôi có thể tạo tệp và ghi nhật ký vào tệp trong ứng dụng nhanh cho thiết bị iOS. Tôi đọc ở đây, https://stackoverflow.com/a/3763050/919280, sử dụng Objective-C, có một giải pháp. Tôi đã thử viết nhanh như sau:Nhận đường dẫn “~/Library” của ứng dụng iOS một cách đáng tin cậy trong Swift

var appDir = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, true) 

Nhưng, NSLibraryDirectory và NSUserDomainMask dường như không có mặt trong Swift. Cách để làm điều này là Swift?

Trả lời

15

Giải pháp:

var appDir = NSSearchPathForDirectoriesInDomains(.LibraryDirectory, .UserDomainMask, true) 

Giải thích:
Bạn có thể click vào phương pháp và xem lời tuyên bố của nó.

func NSSearchPathForDirectoriesInDomains(directory: NSSearchPathDirectory, domainMask: NSSearchPathDomainMask, expandTilde: Bool) -> [AnyObject]! 

Như bạn có thể nhìn thấy nó mất NSSearchPathDirectory enum
NSSearchPathDomainMask struct.

Trong nhanh chóng, khi bạn sử dụng enums, bạn không cần phải xác định kiểu enum, bạn có thể sử dụng trường hợp giá trị bản thân .LibraryDirectory thay vì NSSearchPathDirectory.LibraryDirectory

+1

đâu là sự chuyển hóa NSLibraryDirectory để .LibraryDirectory (hoặc tương tự) tài liệu ? Tôi muốn hiểu lý do tại sao một tùy chọn bắt đầu với, và người kia cần một không gian tên – Mark

+1

xem bản chỉnh sửa của tôi để trả lời. Xcode tạo tiêu đề Swift cho tất cả các lớp. nếu bạn nhấp vào NSSearchPathForDirectoriesInDomains. nó sẽ hiển thị cho bạn Foundation-> tập tin NSPatchUtilities với các khai báo Swift –

+0

Có một lỗi Xcode mà đôi khi nó không thể hiển thị các lớp Swift khi bạn bấm vào một phương thức và muốn xem tài liệu. (Đó là vì Swift vẫn đang trong giai đoạn thử nghiệm). Sau đó, cố gắng khởi động lại Xcode, nó giúp đôi khi –

Các vấn đề liên quan