2008-11-13 14 views
35

Xcode có hỗ trợ bất kỳ điều gì giống với chỉ thị của Visual Studio #region các chỉ thị cho việc xếp mã tùy ý không?Các vùng Xcode

Trả lời

54

Không, bạn chỉ có thể gấp mã trên các cấp độ phạm vi được xác định khác nhau trong Xcode.

Bạn có thể sử dụng các mẹo nhỏ để thực hiện điều hướng qua menu chức năng dễ dàng hơn.

#pragma mark 

Cho phép bạn tạo nhóm mà nhãn sau sẽ hiển thị trong menu chức năng. Nếu nhãn là dấu gạch nối, dấu phân cách sẽ được chèn vào menu chức năng.

Ngoài ra, các nhãn sau trong bình luận sẽ hiển thị trong menu chức năng:

// MARK: 
// TODO: 
// FIXME: 
// !!!: 
// ???: 

Rõ ràng kể từ dấu #pragma là không thực sự di động, nếu bạn đang xây dựng một ứng dụng di động và cần nó để làm việc với một trình biên dịch không chỉ bỏ qua các chỉ thị #pragma mà nó không hiểu, dấu kiểu nhận xét là một lựa chọn thay thế.

+2

Chuẩn C cho biết việc triển khai tuân thủ * phải * bỏ qua chỉ thị '# pragma' mà nó không hiểu. Tất nhiên, mọi chỉ thị '# pragma' không bắt đầu bằng' STDC' đều được định nghĩa thực thi, vì vậy vẫn không phải là di động. – dreamlax

+0

Ai đó chắc chắn nên tạo một plugin XCode để gấp mã tùy chỉnh. Điều đó sẽ rất hữu ích :) – brimstone

12

tôi sẽ xuống địa ngục này, nhưng ở đây đi:

Ở phía trên cùng của một tập tin nào đó, đưa

#define FOLD 1 

Bất cứ nơi nào bạn muốn gấp một cái gì đó, bọc nó trong một khối nếu như vậy :

if(FOLD) { 
// your code to hide 
// more code 
} 

Điều đó sẽ cho phép bạn gấp nó ra khỏi tầm mắt.

+8

Nó sẽ là một ý tưởng tốt, nhưng bạn chỉ có thể đặt một câu lệnh if bên trong một phạm vi chức năng. Bạn không thể bọc các định nghĩa struct, enum và function trong một if. – Chuck

+48

+1 để truy cập địa ngục – MrJD

+1

+1 khác cho hầu hết các IDE không hỗ trợ chỉ thị tiền xử lý cho mã gấp, -1 vì tôi nghĩ điều này là do chúng muốn buộc chúng tôi sử dụng phương pháp thay vì gấp, +1 cho điều này sẽ tuyệt vời cho phương pháp nhóm, -1 cho tôi nghĩ rằng điều này là bởi vì họ muốn buộc chúng tôi sử dụng các lớp học. Vì vậy, chúng tôi thậm chí là: P. Xin lỗi vì sự thiếu hiểu biết của tôi, nếu có tồn tại. –

4

Điều đó sẽ không hoạt động ở nơi bạn muốn nhất, tức là, xung quanh các nhóm chức năng hoặc phương pháp. Nó có thể hữu ích bên trong một phương pháp dài, tuyến tính không có điều kiện hoặc vòng lặp nội bộ, nhưng các phương thức này không phổ biến trong mã giao diện người dùng Mac OS X, mặc dù nếu bạn đang viết một số mã lớn hoặc đồ họa-crunching nó có thể giúp nhóm mọi thứ.

Và nếu (gấp) hoàn toàn không cần thiết. Chỉ cần sử dụng dấu ngoặc trong một phương thức hoặc hàm và Xcode sẽ gấp chúng lại.

+4

Thật đáng ngạc nhiên khi nhiều người không biết rằng bạn có thể giới thiệu phạm vi mà không cần phân nhánh. – dreamlax

-3

Một giải pháp tốt đẹp mà tôi vừa tìm thấy:

Đặt dự án của bạn thành một không gian tên lớn. Đóng và mở lại namespace này cho các phần riêng lẻ của tập tin nguồn của bạn:

namespace myproj { // members of class MyClassA 

void MyClassA::dosomething() 
{ 
} 

void MyClassA::dosomethingelse() 
{ 
} 

} // members of class MyClassA 
namespace myproj { // members of MyClassB 

void MyClassB::dosomething() 
{ 
} 

void MyClassB::dosomethingelse() 
{ 
} 

} // members of MyClassB 
+1

Đó là giải pháp, nếu ở tất cả khả thi, sẽ chỉ làm việc cho C++ là Mục tiêu-C không hỗ trợ không gian tên – HairOfTheDog

+0

Lol ................... – Jamil

0

Đặt mã mong muốn của bạn bên trong dấu ngoặc {}, và nó sẽ trở thành một khu vực gấp.

Nhưng bạn phải nhớ rằng các dấu ngoặc cũng xác định phạm vi biến, vì vậy mã này không nên có các khai báo biến sẽ được sử dụng bên ngoài các dấu ngoặc này.

3

Hãy thử cách này:

//region title1 
{ 
    //region Subtitl1 
    { 

    } 
    //region Subtitl2 
    { 

    } 
} 

Nó có thể làm như thế:

It can do like that :

+0

no, thaty actualy doesn ' t làm việc – user884248

1

Nếu không có sự hỗ trợ cho khu vực Net phong cách, có thể sụp đổ tất cả các chức năng của mình đồng thời là Điều tốt nhất tiếp theo.

lệnh - tùy chọn - thay đổi - trái mũi tên sụp đổ tất cả.

lệnh - tùy chọn - thay đổi - mũi tên bên phải để mở rộng tất cả.

Xcode sẽ nhớ trạng thái cuối cùng của các chức năng thu gọn.

+0

NB: trong Xcode 8, để làm cho Xcode nhớ gấp của bạn, đảm bảo định dạng dự án của bạn được đặt thành 'Tương thích với Xcode 8.0 '. – Cemen