2009-07-14 45 views
22

Xin chào các bạn, tôi khá mới với Xcode và một điều khiến tôi bận tâm là khi tôi thêm tài nguyên, nó sẽ được thêm vào thư mục cấp cao nhất trong thư mục dự án của tôi. Vì vậy, ví dụ, tại thời điểm này, tất cả các hình ảnh của tôi là ở thư mục cấp cao nhất và nó làm cho mọi thứ trông lộn xộn. Ví dụ, tôi thích có một thư mục images/ và sau đó là các thư mục con để lưu trữ hình ảnh cho một số thứ nhất định, như biểu tượng tab tab-bar/. Điều này có thể không? Hoặc là nó quy ước để chỉ giữ tất cả mọi thứ trong thư mục cấp cao nhất?Tổ chức và cấu trúc tài nguyên dự án Xcode

Một người nào đó trong kênh #iphonedev tại freenode đã nói với tôi điều gì đó về quy tắc xây dựng hoặc thứ gì đó, nó dường như quá phức tạp, tôi thấy mình không nên bận tâm, và hầu hết mọi người chỉ giữ mọi thứ trong thư mục gốc của họ xem xét sự phức tạp của giải pháp. Có lẽ nó không phải là tất cả những gì phức tạp mặc dù, tôi chỉ cảm thấy nó nên được dễ dàng hơn.

Ví dụ: tôi cũng muốn có một thư mục con cho các chế độ xem của mình, như lượt xem/ lưu trữ tất cả các tệp nib của tôi; hiện tại tất cả chúng đều nằm trong thư mục cấp cao nhất. Và cũng vậy với danh sách tài sản của tôi.

Tôi sẽ đánh giá cao nếu bạn có thể cho tôi biết quy ước là gì, tôi nghi ngờ đó là chỉ lưu trữ mọi thứ trong thư mục cấp cao nhất. Và tôi đề cập đến hệ thống tệp thực tế, không chỉ đơn giản là tạo 'các thư mục ảo' trong Xcode để sắp xếp mọi thứ, bởi vì thư mục cấp cao nhất của dự án của tôi vẫn sẽ là một mớ hỗn độn. Và nếu có thể tổ chức mọi thứ tốt hơn, tôi sẽ đánh giá cao bất kỳ sự trợ giúp chi tiết nào về cách thực hiện nó.

Tôi nghĩ rằng tôi đã nghe nói rằng trong bản xây dựng cuối cùng, toàn bộ cấu trúc tệp bị đè vào thư mục gốc. Tôi không bận tâm lắm về điều đó, tôi chỉ muốn mọi thứ được tổ chức trong khi tôi đang làm việc trong dự án của mình. Tôi nghĩ rằng đây là nơi mà 'xây dựng quy tắc' điều đến, nhưng tôi không chắc chắn làm thế nào hoặc phải làm gì.

Cảm ơn!

Trả lời

20

Dưới đây là một chút giải thích thêm về đề nghị của Graham:

  • Tạo một hình ảnh thư mục
  • Tạo một hình ảnh Tập đoàn trong Xcode
  • Kích chuột phải vào nhóm và Get Info
  • "Choose .. . "để đặt thư mục của nhóm thành thư mục hình ảnh của bạn

Bây giờ, mọi thứ bạn đưa vào nhóm hình ảnh sẽ tự động omatically đi vào thư mục hình ảnh. Đó là sự thật nếu bạn kéo/thả từ bên trong Xcode, từ các dự án khác hoặc từ Trình tìm kiếm hoặc nếu bạn Thêm Mới ... bằng cách nhấp chuột phải vào thư mục hình ảnh. (Điều này giả định bạn để cài đặt mặc định là "tương đối so với nhóm" trong ngăn thông tin.)

Điều này sẽ làm việc cho bất kỳ thứ gì bạn đưa vào nhóm đó (NIB, v.v.).

Đối với imageNamed:, bạn chỉ cần đặt tên cơ sở.

Đề xuất của tôi là giữ một số lượng nhỏ thư mục hệ thống tệp và chủ yếu tổ chức với các nhóm trong Xcode. Nhưng tôi đồng ý, một số lượng nhỏ các thư mục hệ thống tập tin rất hữu ích. Tôi đặt tất cả các mã nguồn của tôi trong một thư mục Classes (chỉ vì Apple đã sử dụng tên đó, tôi đã chọn "Nguồn" hoặc một cái gì đó). Tôi cũng có một thư mục Tài nguyên ở cấp cao nhất và thường tạo các thư mục hình ảnh và âm thanh theo đó. Nhưng tôi thường không tạo ra nhiều thư mục thực sự ngoài đó. Điều này giúp mọi thứ trở nên gọn gàng hơn, nhưng làm cho việc grep và ký tự đại diện trở nên dễ dàng hơn với trình bao.

Ngoài các công cụ vỏ, lợi thế lớn của việc tổ chức theo nhóm thay vì thư mục là tác động trên các hệ thống kiểm soát phiên bản như lật đổ. Khi bạn đột nhiên nhận ra rằng nhóm "Chế độ xem" của bạn quá lớn, bạn có thể tổ chức lại nó mà không phải chịu tác động lớn của việc di chuyển các tệp xung quanh.

+0

Cảm ơn, điều này đã làm cho tôi. Vâng, tôi không định làm việc quá mức, chỉ cần ít nhất một số cơ cấu tổ chức cơ bản là tốt đẹp để có. Cho đến nay tôi có hình ảnh/trong đó có hình ảnh/tab-bar và hình ảnh/máy nghe nhạc, cũng như danh sách tài sản/để lưu trữ các tập tin .plist và xem/để lưu trữ các tập tin nib. Tôi đã nghĩ về việc tạo một thư mục 'Tài nguyên', nhưng tôi không biết làm thế nào tôi sẽ làm điều này, bằng cách thay đổi đường dẫn của nhóm Tài nguyên hiện có sang thư mục Tài nguyên mới? Hoặc tạo nhóm 'Tài nguyên' trong nhóm Tài nguyên hiện có? –

+0

Tôi đã kết thúc việc thực hiện lại bằng cách thêm (các) thư mục làm tham chiếu thư mục. Tôi đọc ở đâu đó rằng điều này có nghĩa là thư mục sẽ được theo dõi, vì vậy khi tôi thêm/xóa các tập tin, tôi không phải làm bất cứ điều gì ở phía Xcode của sự vật. Không biết nếu điều này sẽ gây ra vấn đề sau này mặc dù. –

+1

Xin lỗi vì spam nhận xét. Nó chỉ ra rằng một tài liệu tham khảo thư mục có nghĩa là nó tạo ra cấu trúc thư mục trong kết quả .app. Giải pháp là tạo Tài nguyên/ở cấp cao nhất-dir với các hình ảnh phụ /,/xem /, vv và sau đó kéo các thư mục con đó vào nhóm Tài nguyên ở bên trái và thêm chúng dưới dạng các nhóm. Bây giờ có vẻ như cách tôi muốn nó nhìn vào hệ thống tập tin, và vẫn trông có tổ chức trong Xcode. –

2

Thực sự rất dễ dàng để đi từ nơi bạn đến nơi bạn muốn đến. Tạo thư mục images/ và đặt tất cả các hình ảnh trong đó. Bây giờ trong cửa sổ dự án trong Xcode, các tệp hình ảnh đã chuyển sang màu đỏ vì chúng không còn ở vị trí nào nữa. Nhận thông tin về họ và "Chọn ..." vị trí mới.

Lưu ý rằng chỉ vì bạn đã di chuyển tệp trong hệ thống tệp nguồn (được gọi là $SRCROOT), không có thay đổi đối với cách tệp được sử dụng trong sản phẩm. Nếu nó được sao chép vào Contents/Resources/ trước khi bạn di chuyển tệp, đó là nơi nó được sao chép vào sau đó. Không có thư mục con nào được thêm vào đích.

+0

Cảm ơn! Điều này cũng sẽ làm việc với các tập tin nib và danh sách tài sản? Khi tôi tải các mã này trong mã của tôi, ví dụ như một hình ảnh, tôi sẽ làm imageNamed: @ "file.png" hoặc imageNamed: @ "path/to/my/file.png"? –

3

Cuộc sống khó cho IDE. Họ phải dàn xếp giữa thế giới hệ thống tệp , nơi trình biên dịch, với các tệp nguồn trực tiếp và thế giới giao diện người dùng , nơi các lập trình viên hoạt động.

Trong thời gian cũ đã hình thành văn hóa mã hóa đương đại, mọi người, trình biên dịch và mọi người, thường sống tất cả togheter trong hệ thống tệp. Vì vậy, hôm nay chúng tôi vẫn có khuynh hướng nghĩ rằng chúng tôi muốn kiểm soát nơi nguồn và tài nguyên nằm trên đĩa. Điều đó là tốt, bởi vì chúng ta có thể cần phải biết chính xác những gì các trình biên dịch ăn.

Dù sao nếu bạn nghĩ IDE của mình giống như một lối vào của hệ thống cơ sở dữ liệu hài hước của mã nguồn và nếu bạn thực sự hoàn toàn tin tưởng vào khả năng và tính năng của nó (ít khi xảy ra), bạn có thể kết luận rằng nếu bạn không quan tâm đến hệ thống tập tin, bạn có thể có một cuộc sống tốt hơn, như một lập trình viên (và như một con người).Bạn đang tự hỏi, bởi vì Xcode không phải là rất tốt cũng không thân thiện về tổ chức mã hệ thống tập tin và những người đó (chính xác) picky trên đó sẽ tìm hiểu làm thế nào để di chuyển các tập tin trên quyền thư mục của họ trên đĩa, và trên của họ phải Nhóm Xcode. Điều đó, nếu bạn sử dụng "Tạo tài liệu tham khảo thư mục cho bất kỳ thư mục bổ sung", có một mối quan hệ 1: 1.

Nhưng bạn sẽ thấy nhiều người và nhiều ví dụ về dự án từ Apple itsef, sử dụng cây hệ thống tập tin đơn giản với mọi thứ trong cùng một thư mục.

Lời khuyên của tôi là bạn có ít nhất nhóm các tiêu đề công khai và tài nguyên trong các thư mục khác nhau, cái gì đó là Java/Maven, nhưng không có quy ước chung.

+0

Cảm ơn, nhưng tôi chưa bao giờ nói Xcode đã hút vào điều này. Tôi mới làm quen với nó và tôi chỉ tự hỏi làm thế nào nó được thực hiện, và nếu nó thậm chí nên được thực hiện. Nó chỉ là khi tôi đi xem kho lưu trữ github của tôi, nó trông thực sự lộn xộn với tất cả mọi thứ trên thư mục cấp cao nhất. –

+0

Xin lỗi, tôi không có ý nói thô lỗ. Tôi biết bạn đã tự hỏi, tôi đã có mối quan tâm tương tự của bạn một thời gian trước đây. Tôi sẽ thay đổi từ ngữ đó. – IlDan

+0

Không sao, cảm ơn phản hồi. Nó xóa một số thứ lên. –

5

Câu trả lời được chấp nhận không hoạt động đối với tôi trong Xcode 4.3.2. Có vẻ như họ đã xóa tùy chọn trình đơn "Nhận thông tin". Thay vào đó tôi đã làm điều này:

  1. Tạo thư mục trên đĩa mà tôi muốn.

  2. Went vào menu tập tin

  3. phải nhấp vào nhóm tôi muốn thêm vào

  4. chọn "Add Files để ProjectName"

  5. gia tăng các tập tin từ thư mục tôi đã tạo trong (1)

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