2014-11-03 17 views
7

một số cơ thể có thể giúp tôi tại sao đoạn code dưới đây không hoạt động .. Tôi đang thử nghiệm nó trong Xcode.1 Sân chơiXML phân tích cú pháp trong nhanh chóng

let url:NSURL! = NSURL(fileURLWithPath:"file:///Users/sss/Documents/app.xml") 

var xml = NSXMLParser(contentsOfURL: url) 

xml?.parse() 

Trả lời

19

sân chơi được sandboxed, do đó bạn sẽ không thể chỉ cần lấy các tập tin từ bất cứ nơi nào trong thư mục người dùng của bạn. Dưới đây là làm thế nào để thêm tập tin đó để sân chơi của bạn để làm cho nó dễ tiếp cận:

  1. Tìm ".playground" tập tin của bạn trong Finder
  2. Nhấp chuột phải và chọn 'Show Package Contents'
  3. Bạn sẽ thấy "dòng thời gian .xctimeline", "contents.xcplayground", và "phần-1.swift"
  4. Tạo một thư mục mới có tên gọi "Tài nguyên"
  5. copy "app.xml" vào thư mục mới

Bây giờ, tệp của bạn sẽ có sẵn bên trong hộp cát. Bạn có thể lấy nó từ gói và tải nó vào NSXMLParser như thế này:

let url: NSURL! = NSBundle.mainBundle().URLForResource("app", withExtension: "xml") 
var xml = NSXMLParser(contentsOfURL: url) 
+0

Hi Nate Cook cảm ơn bạn rất nhiều vì đã giúp đỡ rất nhiều. Bây giờ tôi hiểu rằng sân chơi là một môi trường sandboxed. Nhưng bạn có thể cho tôi biết tại sao 3 dòng mã giống nhau không hoạt động trên ứng dụng Mac OS X. Trên thực tế tôi có một yêu cầu trong ứng dụng mac của tôi, nơi tôi phải phân tích cú pháp xml tập tin được lựa chọn bởi người dùng từ NSOpenPanel – appdevelopersspotlight

+0

Bỏ lỡ theo dõi của bạn, xin lỗi! Nếu bạn vẫn gặp sự cố này, bạn có thể đăng câu hỏi mới không? Tôi không hoàn toàn quen thuộc với hộp cát 'NSOpenPanel' và OS X. –

+0

Nếu bạn mở tệp sân chơi khi thực hiện những thay đổi này, hãy nhớ đóng và mở lại nó trước khi thử truy cập các tệp trong thư mục Tài nguyên. –

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