Đến từ nền Java Tôi đoán điều này được mong đợi. Tôi thực sự thích học Objective-C và bắt đầu phát triển các ứng dụng Mac, nhưng cú pháp chỉ là giết tôi.Bạn muốn tìm hiểu Mục tiêu-C nhưng cú pháp rất khó hiểu
Ví dụ:
-(void) setNumerator: (int) n
{
numerator = n;
}
rằng dash cho và tại sao được theo sau bởi khoảng trống trong ngoặc đơn là gì? Tôi chưa bao giờ thấy void trong ngoặc trong C/C++, Java hoặc C#. Tại sao chúng ta không có dấu chấm phẩy sau (int) n? Nhưng chúng tôi có ở đây:
-(void) setNumerator: (int) n;
Và quy trình cấp phát, init, phát hành này là gì?
myFraction = [Fraction alloc];
myFraction = [myFraction init];
[myFraction release];
Và tại sao nó [myFraction release];
và không myFraction = [myFraction release];
?
Và cuối cùng là những gì có dấu @ và triển khai này tương đương với Java như thế nào?
@implementation Fraction
@end
Tôi hiện đang đọc Programming in Objective C 2.0 và quá bực mình khi tìm hiểu cú pháp mới này cho ai đó trong nền Java.
CẬP NHẬT 1: Sau khi đọc tất cả các câu trả lời này và Lập trình trong Mục tiêu C 2.0 thêm một chút nữa, tất cả bắt đầu có ý nghĩa ngay bây giờ!
CẬP NHẬT 2: Cảm ơn mẹo tuyệt vời "hỗ trợ đa ngôn ngữ". Chúng tôi có thể kết hợp hai câu lệnh này vào một mặt hàng như vậy:
myFraction = [Fraction alloc];
myFraction = [myFraction init];
có thể được giảm xuống còn:
myFraction = [[Fraction alloc] init];
Bạn sẽ quen với nó sau khi làm việc với nó một lúc. Nó có vẻ khá lạ với tôi khi tôi bắt đầu quá. – progrmr
http://developer.apple.com/mac/library/documentation/cocoa/conceptual/objectivec/Introduction/introObjectiveC.html Đọc phần này. Nó không khác gì bắt đầu một ngôn ngữ mới hơn bất kỳ ngôn ngữ nào khác. Có sự khác biệt về cú pháp và quản lý sự khác biệt về bộ nhớ nhưng không khác gì so với việc bắt đầu một số ngôn ngữ bậc cao khác. –
Tôi có thể tiêu hóa cú pháp Objective-C trong 1 ngày. Nhưng tôi mất vài tuần để (hầu như không hiểu được quản lý bộ nhớ). Chúc may mắn! – ohho