Cần bao nhiêu kiến ​​thức về C / C ++ để phát triển Objective-C / iPhone?


8

Đầu tiên, một chút nền tảng. Tôi là nhà phát triển .Net (C #) và có hơn 5 năm kinh nghiệm trong cả phát triển web và ứng dụng máy tính để bàn. Tôi đã muốn xem xét sự phát triển của iPhone một thời gian rồi, nhưng vì lý do này hay lý do khác luôn bị theo dõi bên. Cuối cùng tôi cũng có một dự án tiềm năng, và bây giờ tôi sẽ hoàn toàn hứng khởi trước việc học thứ này.

Câu hỏi của tôi là: Tôi chưa thực hiện bất kỳ chương trình C / C ++ nào kể từ khi còn đi học, tôi đã sống ở vùng đất được quản lý kể từ đó. Bao nhiêu kiến ​​thức nếu có là cần thiết để thành công như một nhà phát triển iOS? Rõ ràng quản lý bộ nhớ là điều mà tôi phải ý thức (mặc dù với iOS 5 dường như có một thứ gọi là ARC sẽ giúp cuộc sống của tôi dễ dàng hơn), nhưng còn gì nữa không? Tôi không chỉ nói về API C (ví dụ, để có được tội lỗi của một số, tôi gọi hàm sin ()), đó là những gì Google dành cho. Tôi đang nói về các thành ngữ C / C ++ cơ bản mà nhà phát triển C # trung bình không biết đến.


2
Tại sao điều này có liên quan đến C ++?
sdg

Từ những gì tôi đã đọc, có rất nhiều API mà các nhà phát triển iOS tương tác với được viết bằng C ++. Điều đó có đúng không?
BFree

C hoặc Mục tiêu-C. Không yêu cầu C ++.
Terry Wilcox

@BFree bạn hiếm khi cần sử dụng C ++ để phát triển iOS. Trừ khi bạn đang làm một cái gì đó yêu cầu các thư viện cụ thể như OpenCV hoặc Irrlicht, bạn sẽ chủ yếu làm Objective-C. Cốc Cốc cảm ứng được viết bằng Objective-C và đó là bộ khung của Apple mà bạn chủ yếu sẽ sử dụng.
đúng

Câu trả lời:


7

Đừng lo lắng về nó. Nếu bạn biết đủ C để có thể viết các lệnh gọi hàm, hiểu và viết các biểu thức số học và xử lý các con trỏ, có lẽ bạn sẽ ổn. Dĩ nhiên, bạn vẫn cần học Objective-C, nhưng phần lớn mã bạn sẽ viết sẽ có nhiều Objective-C hơn cũ C. Làm quen với kiểu Objective-C và học Cốc Cốc sẽ tiêu tốn nhiều hơn thời gian của bạn hơn là đánh lên C.

Tôi thường nói với những người bắt đầu từ số 0 để học C trước khi nhảy vào Objective-C. Tôi đứng trước lời khuyên đó - học C sẽ dạy cho bạn kiến ​​thức cơ bản mà bạn cần để hoạt động hiệu quả trong Objective-C. Bạn cần biết hàm là gì, cách sử dụng các cấu trúc điều khiển như vòng lặp và câu lệnh điều kiện, cách thức các loại dữ liệu cơ bản khác nhau, cấu trúc là gì và v.v. Và vì tất cả C là trò chơi công bằng trong Objective-C, bạn càng biết nhiều về C, bạn sẽ càng sẵn sàng để hiểu mã bạn có thể chạy qua. Điều đó nói rằng, nhiều nhiệm vụ được thực hiện khác nhau trong Objective-C, vì vậy thành ngữ C tiêu chuẩn không nhất thiết phải là thành ngữ Objective-C tiêu chuẩn. NSString và NSArray thay thế các mảng kiểu C. Con trỏ rất phổ biến, nhưng chúng chủ yếu được sử dụng để chỉ các đối tượng - số học con trỏ không xuất hiện thường xuyên.

Điều tương tự cũng xảy ra với C ++ ... bạn sẽ không cần nhiều C ++ để hòa hợp với nhau trong Objective-C. Tại một thời điểm nào đó trong tương lai, bạn có thể cần tăng kiến ​​thức về C ++ để tích hợp một số mã C ++ hiện có vào một ứng dụng và tại thời điểm đó, bạn có thể cần dành thời gian để học, nhưng đừng để thiếu kiến ​​thức về C ++ bạn không thử lập trình iOS.


1

Không phải là một câu trả lời đầy đủ, nhưng bạn cần xem bản pdf này nếu bạn đang học Objective-C.

Thật dễ đọc nếu bạn thích đọc để học ngôn ngữ, trái ngược với việc xem mã mẫu hoặc ví dụ. Miễn là bạn có hiểu biết về OOP thì việc chọn Obj-C là thuận buồm xuôi gió. Điều thực sự khiến tôi băn khoăn về việc học iPhone dev là việc sử dụng Xcode, đó là một câu chuyện khác ....

Táo Obj-C


0

Phụ thuộc.

Một tập hợp ngôn ngữ lập trình (đôi khi được gọi là "các phần tốt") thường hoạt động tốt nếu mục tiêu của bạn không đẩy các giới hạn của tập hợp con đó.

Nếu bạn muốn thực hiện các công cụ UI đơn giản (những thứ bạn có thể làm trong ứng dụng web), hãy gắn với các loại dữ liệu của Cốc Cốc và Nền tảng bạn viết mã không có lỗi, có lẽ bạn có thể nhận được bằng cách biết rất ít về C bên dưới Mục tiêu C .

Tuy nhiên, nếu bạn muốn xử lý hoặc phân tích âm thanh, video, hình ảnh (v.v.) của iOS, các API và mã ví dụ tham chiếu mà bạn có thể sẽ làm việc với hầu hết là bằng C và là thành ngữ C.

Nhưng Objective C là một superset nghiêm ngặt của C, vì vậy lỗi chính tả và lỗi có thể tự biểu hiện ở bất kỳ cấp độ nào của môi trường ngôn ngữ. Nếu mã của bạn có lỗi, thì bạn có thể cần biết nội dung sâu ở con trỏ C, kiểu dữ liệu và mức heap để phân tích sự cố và gỡ lỗi. Mục tiêu C không được "quản lý" và do đó, người ta có thể tạo ra một mớ hỗn độn trong bộ nhớ hoặc mục đích hoặc là một tai nạn hoàn toàn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.