2012-01-07 34 views
18

Tôi có một phương pháp:Tên thông số đầu tiên trong mục tiêu c?

- (void)pan:(double)lat longitude: (double) lon{...}

Khi tôi gọi nó là Xcode cho thấy như thế này:

[self pan:(double) longitude:(double)]

Không phải là nó có thể thiết lập tham số đầu tiên bằng cách nào đó, như số thứ hai (longitude), đó là Xcode có thể hiển thị như thế này:

[self pan: latitude:(double) longitude:(double)]

Nó là rất khó chịu đối với tôi mà tôi không thể nhìn thấy tên của tham số đầu tiên khi gọi. Có phải lỗi của tôi hay không?

+3

Điều bạn gọi là tên thông số thực sự là một phần của tên phương thức. Điều này rất khó hiểu nếu bạn chỉ biết các ngôn ngữ như Java hoặc C++ nhưng tên phương thức thực sự được chia thành nhiều phần trong obj-c. Tên phương thức của bạn không phải là 'pan', nó là' pan: longitude: 'Thông thường bạn nên thử viết tên phương thức đọc như một câu, ví dụ' panToLatitude: andLongitude: ' – Sulthan

Trả lời

14

Cách thông thường để làm những gì bạn đang hỏi là để khai báo phương pháp của bạn như:

-(void)panLatitude:(double)lat longitude:(double)lon; 

Đó là, bao gồm các nhãn cho các đối số đầu tiên với tên gọi phương pháp lúc đầu. Bạn sẽ sử dụng nó như:

[self panLatitude:x longitude:y]; 
+2

Vì vậy, thay đổi tên phương thức, bởi vì không thể xác định tên cho param đầu tiên? – Tom

+3

@Tom, thông số không thực sự có tên, nhưng có, bạn sẽ cần thay đổi tên phương thức. –

+0

Ok. Tôi đến hình thức java và C# vì vậy nó rất lạ đối với tôi. Và để xác định như là PanLatitude là lạ ... bởi vì tôi không pan đến một vĩ độ, nhưng đến một vĩ độ và kinh độ ... – Tom

10

Bạn chỉ cần đặt tên cho phương thức theo cách khác.

- (void)panToLatitude: (double)lat longitude: (double)lon; 

Mục tiêu-C không thực sự có thông số được đặt tên. Tên của phương thức là (trong ví dụ của bạn, không phải phiên bản của tôi ở trên) -pan:longitude: và ngôn ngữ sử dụng ký pháp infix để truyền các đối số.

5

Hãy nhớ rằng mục tiêu-c là gửi tin nhắn đến các đối tượng - thông báo là args. Vì vậy, phần đầu tiên của thông điệp thường chứa động từ và phần dữ liệu đầu tiên. Nó nên đọc dễ dàng.

Đừng nghĩ tên phương thức là "chảo". Trong C# và Java, tên phương thức sẽ là Pan và args là kinh độ và vĩ độ. Phương pháp của bạn nên là một cái gì đó như thế nào.

- (void) panToLatitude:longitude: 

Chuỗi đó là tên chức năng (thư) của bạn. Hãy suy nghĩ về nó như gửi một tin nhắn đó là một từ điển và mục đầu tiên có chứa động từ. Tôi đến từ C langs nền cũng vì vậy nó là một cách suy nghĩ khác nhau.

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