a

Câu hỏi Sự khác biệt chính giữa Cocoa và CocoaTouch là gì?


Tôi hiện đang học Objective-C và Cocoa. Tiếp theo, tôi muốn gắn bó với lập trình iPhone. Tôi sẽ nhận được một cuốn sách cho điều đó, tất nhiên. Nhưng tôi muốn biết bây giờ đã có, những gì khác biệt chính là giữa Cocoa và Cocoa Touch.


9
2018-02-26 18:04


gốc




Các câu trả lời:


Các khái niệm cốt lõi của Cocoa và Cocoa là tương tự nhau, trong đó có một hệ thống phân cấp khung nhìn và chuỗi trả lời. Tuy nhiên, kiến ​​trúc UIView gắn chặt hơn với các công nghệ mới hơn như CoreAnimation.

Các loại điều khiển có sẵn cũng thay đổi.

Ngoài ra, Cocoa touch giới thiệu khái niệm UIViewControllers, tạo ra một trừu tượng tốt đẹp cho việc đặt mã tương tác với chương trình chính của bạn và khung nhìn cụ thể mà nó sở hữu. Theo Chuck chỉ ra trong các ý kiến, điều này đã được thêm vào trong ca cao trong Mac OS X 10.5, do đó, tùy thuộc vào cách bạn học Cocoa bạn có thể hoặc có thể không được nhận thức của họ.

Cuối cùng, như những người khác đã đề cập, Garbage Collection không tồn tại trên iPhone hiện tại.


8
2018-02-26 18:15



Ca cao có NSViewController bây giờ, do đó, đó không thực sự là một sự khác biệt. - Chuck
Cảm ơn bạn đã chỉ ra rằng, vì lý do nào đó tôi đã không biết gì về điều đó (có thể là tôi đã không thực hiện Cocoa máy tính để bàn kể từ khi SDK iPhone xuất hiện). - NilObject
Như một bản cập nhật ba năm sau, bộ sưu tập rác sẽ không bao giờ tồn tại trên iPhone, và bây giờ thậm chí còn không được chấp nhận trên Mac. Tuy nhiên, Apple đã giới thiệu ARC cho cả iOS và OS X, mà về cơ bản là tốt nhất của cả hai thế giới (hiệu suất của bộ nhớ quản lý với thân thiện của thu gom rác thải). - KPM


Để thêm vào những gì người khác đã nói, phần lớn nền tảng được chia sẻ giữa Cocoa Touch và Cocoa. Ví dụ, các lớp kiểu dữ liệu như NSString và các lớp sưu tập như NSArray giống hệt nhau trong cả hai khung công tác. Các lớp khác như NSURLConnection về cơ bản giống nhau. Các khuôn khổ cấp cao khác, chẳng hạn như Core Data chẳng hạn, không có trong Cocoa Touch.

Ngoài ra, Cocoa Touch được phát triển với Objective-C 2.0. Vì vậy, UIKit, đối tác khung Cocoa Touch với AppKit trong Cocoa, sử dụng rộng rãi các thuộc tính. Theo nhiều cách, Cocoa Touch hiện đại hơn Cocoa. Cocoa Touch cũng có xu hướng sử dụng Objective-C @protocol cú pháp thay vì cú pháp danh mục cũ hơn để triển khai những gì Apple gọi là "giao thức không chính thức" (tức là các giao thức trong đó một số phương thức là tùy chọn)


6
2018-02-26 19:44





Mục tiêu C là một ngôn ngữ lập trình động - một chút giống như C ++ và một chút giống Java.

Cocoa là khung ứng dụng cho Mac OS X.

Cocoa Touch là khung ứng dụng cho iPhone và iPod Touch - rất giống với Cocoa.


3
2018-02-24 06:45



Vâng, duh, tôi nghi ngờ các poster ban đầu không biết điều đó. - tml


Về cơ bản nó chỉ là các khuôn khổ có sẵn cho bạn. Để phát triển máy tính để bàn, bạn sẽ sử dụng AppKit và để phát triển iPhone bạn sử dụng UIKit. UIkit rõ ràng bao gồm các tính năng cảm ứng đa điểm, v.v.

Khi bạn bắt đầu phát triển iPhone, đây là Câu hỏi thường gặp có thể hữu ích: http://www.plaidworld.com/iphonefaq.txt

Chỉnh sửa: Và vâng, giống như bài đăng ở trên, mặc dù Objective-C 2.0 có sẵn để phát triển iPhone, không có GC


1
2018-02-26 18:13





Từ những gì tôi hiểu, một trong những khác biệt chính là ca cao có phiên bản riêng của Garbage Collection (bộ nhớ được quản lý như .NET), nhưng cocoaTouch thì không.


-1
2018-02-26 18:12



CocoaTouch có tính tham chiếu cho bộ nhớ. Ca cao có bộ thu gom rác tùy chọn, nhưng chỉ dành cho Mac OS X> = 10.5 - Georg Schölly
Không còn nữa. Với OS X 10.8 (Mountain Lion), Apple đã ngừng sử dụng bộ sưu tập rác, trong khi nó đã giới thiệu ARC trên cả hai nền tảng. - KPM