Pelajari C terlebih dahulu sebelum mempelajari Objective-C [ditutup]

107

Menjadi pengembang Apple yang bercita-cita tinggi, saya ingin mendapatkan pendapat dari komunitas jika lebih baik mempelajari C terlebih dahulu sebelum beralih ke Objective-C dan akhirnya Cocoa Framework?

Perasaan saya mengatakan belajar C, yang akan memberi saya dasar yang baik.

Lark
sumber

Jawaban:

163

Saya akan belajar C dulu. Saya belajar C (dan melakukan banyak hal di C) sebelum pindah ke Obj-C. Saya memiliki banyak kolega yang tidak pernah menjadi programmer C sejati, mereka mulai dengan Obj-C dan hanya belajar C sebanyak yang diperlukan.

Sesekali saya melihat bagaimana mereka menyelesaikan masalah sepenuhnya di Obj-C, terkadang menghasilkan solusi yang sangat canggung. Biasanya saya kemudian mengganti beberapa kode Obj-C dengan kode C murni (setelah semua Anda dapat mencampurnya sebanyak yang Anda suka, konten metode Obj-C dapat seluruhnya, kode C murni). Tanpa niat untuk menghina programmer Obj-C, ada solusi yang sangat elegan di Obj-C, ini adalah solusi yang berfungsi (dan terlihat) jauh lebih baik berkat objek(Pemrograman OOP dapat membuat program yang kompleks jauh lebih indah daripada pemrograman fungsional; polimorfisme misalnya adalah fitur yang brilian) ... dan saya sangat menyukai Obj-C (lebih dari C ++! Saya benci sintaks C ++ dan beberapa fitur bahasa terlalu berlebihan dan menyebabkan pola pembangunan yang buruk IMHO); Namun, ketika saya kadang-kadang menulis ulang kode Obj-C rekan saya (dan saya benar-benar hanya melakukannya, jika menurut saya ini benar-benar diperlukan), kode yang dihasilkan biasanya 50% lebih kecil, hanya membutuhkan 25% dari memori yang digunakan sebelumnya dan sekitar 400% lebih cepat saat runtime.

Apa yang ingin saya katakan di sini: Setiap bahasa memiliki pro dan kontra. C memiliki pro dan kontra, begitu juga dengan Obj-C. Namun, fitur yang sangat hebat dari Obj-C (itulah mengapa saya lebih menyukainya daripada Java) adalah Anda dapat melompat ke C sesuka hati dan kembali lagi. Mengapa ini adalah fitur yang luar biasa? Karena seperti Obj-C memperbaiki banyak kontra dari C murni, C murni dapat memperbaiki beberapa kekurangan Obj-C. Jika Anda menggabungkannya, Anda akan menerima tim yang sangat kuat.

Jika Anda hanya mempelajari Obj-C dan tidak mengetahui C atau hanya mengetahui dasar-dasarnya dan tidak pernah mencoba betapa elegannya Obj-C dapat menyelesaikan beberapa masalah umum, Anda sebenarnya hanya mempelajari setengah dari Obj-C. C adalah bagian fundamental dari Obj-C. Kemampuan untuk menggunakan C kapan saja dan di mana saja adalah fitur fundamentalnya.

Contoh tipikal adalah beberapa kode yang kami gunakan yang harus menyandikan data di base64, tetapi kami tidak dapat menggunakan pustaka eksternal untuk itu (tidak ada lib OpenSSL). Kami menggunakan encoder base64, seluruhnya ditulis menggunakan kelas Cocoa. Itu berfungsi dengan baik, tetapi ketika kami membuatnya menyandikan 200 MB data biner, itu memakan waktu lama dan overhead memori tidak dapat diterima. Saya menggantinya dengan encoder base64 yang sangat kecil dan sangat kompak yang ditulis seluruhnya sebagai satu fungsi C (saya menyalin badan fungsi ke dalam tubuh metode, metode mengambil NSData sebagai input dan mengembalikan NSString sebagai output, namun di dalam fungsi semuanya adalah C). Encoder C jauh lebih ringkas, mengalahkan encoder Cocoa murni dengan faktor 8 dalam kecepatan dan overhead memori juga jauh lebih sedikit. Data Encoding / Decoding, bermain-main dengan bit dan tugas tingkat rendah yang serupa hanyalah poin kuat dari C.

Contoh lainnya adalah beberapa kode UI yang menggambar banyak grafik. Untuk menyimpan data yang diperlukan untuk melukis grafik, kami menggunakan NSArray's. Sebenarnya NSMutableArray, karena grafiknya dianimasikan. Hasil: Animasi grafik sangat lambat. Kami mengganti semua NSArray dengan array C normal, objek dengan struct (setelah semua informasi koordinat grafik tidak ada yang harus Anda miliki dalam objek), akses enumerator dengan simple for loop dan mulai memindahkan data antara array dengan memcopy daripada mengambil data dari satu array ke yang lainnya, indeks untuk indeks. Hasilnya: A dipercepat oleh faktor 4. Grafik dianimasikan dengan mulus, bahkan pada sistem PPC yang lebih lama.

Kelemahan C adalah bahwa setiap program yang lebih kompleks menjadi jelek dalam jangka panjang. Menjaga agar aplikasi C dapat dibaca, dikembangkan dan dikelola menuntut banyak disiplin dari seorang programmer. Banyak proyek gagal karena disiplin ini hilang. Obj-C memudahkan Anda menyusun aplikasi menggunakan kelas, pewarisan, protokol, dan sebagainya. Yang mengatakan, saya tidak akan menggunakan fungsionalitas C murni melintasi perbatasan metode kecuali jika diperlukan. Saya lebih suka menyimpan semua kode dalam aplikasi Objective-C dalam metode objek; segala sesuatu yang lain mengalahkan tujuan aplikasi OO. Namun dalam metode ini saya terkadang menggunakan C murni secara eksklusif.

Mecki
sumber
dan jika saya sudah tahu c ++ dan ingin belajar Objective-C untuk iPhone / iTouch deveopment, apakah saya perlu belajar C?
chester89
11
@ chester89: jika Anda sudah mengetahui C ++ Anda cukup tahu tentang C untuk memulai Objective-C.
Sven
Sven benar, C ++ sangat kompleks dan sudah menggunakan begitu banyak C murni, jika Anda sangat memahami C ++, Anda juga harus cukup memahami C.
Mecki
Ini adalah renungan favorit saya tentang topik ini, terima kasih.
Mork mulai
1
@FrederikWitte Tinggalkan C ++, ini hanya akan membingungkan Anda sebagai pemula (dan ini bukan bahasa yang Anda perlukan untuk pengembangan seluler). Mulailah dengan Java, itu adalah bahasa pengajaran yang baik dan hanya mengetahui Java sudah cukup untuk mengembangkan Android (mungkin kecuali Anda ingin menulis game atau pemutar video atau lebih). Kemudian pelajari C dan terakhir Obj-C, kecuali jika Anda ingin melewatkan semua itu dan pelajari Swift. Pilihanmu.
Mecki
25

Anda dapat dengan mudah mempelajari C dan Objective-C pada saat yang sama - tidak perlu mempelajari hal-hal kecil dari C (termasuk aritmatika pointer dan sebagainya) sebelum memulai dengan penambahan Objective-C pada bahasa tersebut, dan sebagai programmer pemula Memulai Objective-C dengan cepat dapat membantu Anda mulai "berpikir dalam objek" lebih cepat.

Dalam hal sumber daya yang tersedia, dokumentasi Apple biasanya mengasumsikan keakraban dengan C, jadi memulai dengan Bahasa Pemrograman Objective-C 2.0 tidak akan banyak bermanfaat bagi Anda. Saya akan berinvestasi dalam salinan Programming in Objective-C oleh Stephen Kochan (tergantung seberapa cepat Anda ingin memulai, Anda dapat mempertimbangkan untuk menunggu edisi kedua):

Pemrograman Objective-C Developers Library Pemrograman Objective-C 2.0 Developers Library

Ini mengasumsikan tidak ada pengalaman sebelumnya, dan mengajari Anda Objective-C dan sebanyak C yang Anda butuhkan.

Jika Anda merasa sedikit ambisius, Anda dapat memulai dengan Tutorial "Learn C" Scott Stevenson , tetapi tutorial tersebut memiliki beberapa prasyarat ("Anda seharusnya sudah mengetahui setidaknya satu bahasa skrip atau pemrograman, termasuk fungsi, variabel, dan loop. Anda ' Anda juga perlu mengetikkan perintah ke Terminal Mac OS X. ").

(Hanya untuk catatan dan konteks: Saya mempelajari keduanya pada waktu yang sama pada tahun 1991 - tampaknya tidak ada salahnya bagi saya. Namun, saya memang memiliki latar belakang BASIC, Pascal, Logo, dan LISP. )

mmalc
sumber
2
Anda sama sekali tidak merasa perlu mempelajari C terlebih dahulu. Apalagi jika Anda sudah tahu bahasa seperti C # dari Java. C # dan Java berhutang banyak pada objektif C. Meskipun C # berhutang lebih banyak pada pengalaman dan kesalahan Helsberg dengan Delphi.
Daniel Honig
18

Saya banyak memikirkan masalah ini sebelum menulis buku saya tentang Objective-C. Pertama, saya sangat yakin bahwa mempelajari bahasa C sebelum mempelajari Objective-C adalah jalan yang salah. C adalah a proseduralbahasa yang berisi banyak fitur yang tidak diperlukan untuk pemrograman di Objective-C, terutama di tingkat pemula. Faktanya, menggunakan beberapa fitur ini bertentangan dengan prinsip mengikuti metodologi pemrograman berorientasi objek yang baik. Ini juga bukan ide yang baik untuk mengajarkan semua detail bahasa prosedural (dan menyerang solusi masalah dengan fungsi dan teknik pemrograman terstruktur) sebelum mempelajari bahasa berorientasi objek. Ini dapat memulai programmer ke arah yang salah yang berpotensi mengarah pada pengembangan orientasi dan pola pikir yang salah untuk mendorong disiplin pemrograman berorientasi objek yang baik. Hanya karena Objective-C adalah perpanjangan dari bahasa C tidak berarti Anda harus belajar C terlebih dahulu!

Saya pikir mengajar Objective-C dan bahasa C yang mendasari sebagai bahasa terintegrasi adalah pendekatan yang tepat. Tidak ada alasan untuk mengetahui bahwa pernyataan "untuk" berasal dari bahasa C dan bukan dari bahasa Superset Objective-C-nya. Lebih lanjut, mengapa belajar secara rinci tentang hal-hal seperti array dan string C (dan memanipulasinya) sebelumnyabelajar tentang array (NSArray) dan objek string (NSString), misalnya? Banyak teks C mencurahkan banyak waktu untuk struktur, dan penunjuk ke struktur, dan melakukan iterasi melalui larik dengan penunjuk. Tetapi Anda dapat mulai menulis program Objective-C tanpa mengetahui tentang fitur bahasa C ini. Dan untuk programmer pemula, itu masalah besar. Tidak hanya mempersingkat kurva pembelajaran tetapi juga mengurangi jumlah materi yang harus dipelajari (dan beberapa di antaranya secara selektif disaring) menjadi penulisan program Objective-C.

Saya setuju bahwa Anda akan ingin mempelajari sebagian besar, jika tidak semua, fitur C yang mendasarinya, tetapi banyak yang dapat ditunda sampai pemahaman yang kuat tentang pendefinisian kelas dan metode, bekerja dengan objek dan ekspresi pesan, dan memahami konsep pewarisan dan polimorfisme dipahami dengan baik.

skochan.dll
sumber
Ini semua untuk mereka yang ingin belajar dengan cepat sambil menghindari perjuangan dan pemahaman yang mendalam. Saya mengajar pemula pemrograman lengkap (sementara saya memiliki 11+ tahun pengalaman pemrograman) untuk memprogram dan digunakan untuk mengajar orang lain sebelumnya (tapi saya bukan guru untuk menjelaskannya). Dan tahukah Anda? Semua konsep yang biasa kita semua gunakan ini sangat rumit dan tidak intuitif bagi pemula yang lengkap! C adalah cara yang bagus untuk memahami hal-hal yang cukup rendah, sehingga di masa depan tidak akan menjadi keajaiban bagi mereka. Yang mengatakan, untuk kurva belajar programmer yang lebih baik lebih baik dengan C pada awalnya dengan aturan barbar =)
MANIAK_dobrii
15

Saya akan langsung menyelami Objective C - jika Anda sudah memiliki beberapa bahasa, bukan sintaks yang merupakan kurva pembelajaran, melainkan Cocoa.

Paul Dixon
sumber
1
Sekarang dengan itu, ada lebih banyak materi yang tersedia untuk belajar C. Menemukan itu adalah bagian tersulit tentang ObjC, kurangnya materi yang diatur dengan baik, jelas, memiliki kedalaman yang cukup untuk dibandingkan dengan materi C atau C ++ dan sangat membantu Anda memahami apa itu. terjadi di dalamnya.
Spanky
10

Saya pikir, untuk sebagian besar, mempelajari C adalah ide yang bagus tidak peduli di bidang apa Anda akan masuk, setidaknya untuk memahami cara kerja pengembangan perangkat lunak sebelum menggunakan barang yang sudah dikemas, dengan cara itu jika terjadi kesalahan Anda memiliki kesempatan yang lebih baik untuk memahami cara kerja batin. Ada banyak diskusi tentang ini di SO, dan ini pertanyaan yang agak subjektif, tetapi secara umum Anda secara inheren akan menggunakan C dalam kode Objective-C Anda, jadi saya rasa itu benar-benar terserah Anda. Saya tipe orang yang rendah hati, tetapi terkadang hal itu bisa menghalangi dan saya tahu beberapa orang pintar yang bekerja dari atas ke bawah, saya pikir bagian yang penting adalah Anda bisa memahami cara kerja batin sebagaimana mestinya. membedakan kemampuan Anda dari mereka yang tidak serta meningkatkan kemampuan Anda.

TheXenocide
sumber
mempelajari C terlebih dahulu juga dapat mengubah pandangan Anda tentang pemrograman OO jika Anda belum membumi di dalamnya. Pencampuran coding terstruktur dan prosedural kurang baik. Tetapi juga benar bahwa OO kehilangan nilainya di banyak tempat di mana C bersinar seperti menulis kode level yang lebih rendah.
Daniel Honig
1
Alasan saya menyarankan setiap pengembang belajar C di beberapa titik setidaknya didasarkan pada gagasan bahwa bahkan bahasa OO mengkompilasi ke instruksi yang sama persis dengan C pada akhirnya. Variabel untuk objek menggunakan pointer, Pengumpul Sampah menggunakan malloc dan gratis, file dikunci menggunakan pegangan OS; ketika terjadi kesalahan pada aplikasi Java atau C #, mengetahui dasar-dasar ini dapat meningkatkan pemahaman Anda tentang apa yang salah. Memahami alokasi sumber daya yang akan dilakukan juga cenderung mengarah pada penulisan kode yang lebih terinformasi yang akan bekerja lebih optimal untuk konteks tertentu.
TheXenocide
7

Sebaiknya pelajari C sebelum mempelajari Objective-C, yang merupakan superset ketat dari C. Ini berarti Objective-C dapat mendukung semua kode C normal, jadi kode yang umum untuk program C pasti akan muncul bahkan di Objective- Kode C.

Selain melihat hal-hal murni dari sudut pandang bahasa, Anda akan menemukan bahwa Mac OS X adalah sistem operasi Unix yang lengkap. Semua pustaka tingkat sistem ditulis dalam C.

Dimungkinkan untuk mempelajari keduanya pada saat yang sama, tetapi saya pikir Anda akan lebih menghargai dan memahami Objective-C jika Anda memiliki pengetahuan yang kuat tentang C terlebih dahulu.

Doug
sumber
5

Saya akan belajar Objective-C dan belajar C sebanyak yang Anda butuhkan.

Area C yang tidak akan terlalu Anda andalkan:

  • Aritmatika dan larik penunjuk. Saya belum pernah menggunakan array C.
  • Senar C. String Objective-C melakukan pekerjaan dengan lebih baik dan lebih aman.
  • Manajemen memori manual jika Anda menggunakan GC di Obj-C 2.1. Saya sangat merekomendasikan rute ini untuk alasan kecepatan pengembangan dan kinerja.
Giao
sumber
6
Satu peringatan: Pengumpulan Sampah di Objective-C tidak tersedia di semua platform (terutama iPhone), yang merupakan sesuatu yang harus diperhatikan.
Mark Bessey
5

Saat Anda mempelajari Objective-C dan Cocoa, Anda tidak dapat menghindari mempelajari bit-bit C. Misalnya, persegi panjang biasanya diwakili oleh CGRect, sebuah struktur C.

Jika Anda punya waktu, pelajari C. Seperti yang dikatakan orang lain di sini, buku Kochan (edisi kedua dan pertama) sangat bagus sebagai buku untuk dipelajari.

mattwestbright.dll
sumber
4

Ada banyak hal yang tidak dapat Anda lakukan hanya di Objective-C, jadi mempelajari beberapa keterampilan C dasar akan sangat penting. Anda setidaknya perlu memahami deklarasi variabel dan fungsi pustaka C dasar, atau Anda akan frustrasi.

Mark Bessey
sumber
3

Sejujurnya, begitu banyak bahasa didasarkan pada sintaks C yang sebaiknya Anda kenal. Saya membutuhkan waktu satu atau dua minggu untuk membiasakan diri dengan C.

Meskipun demikian, saya baru saja belajar sendiri Tujuan C, dan saya harus jujur: Saya tidak menemukan pengalaman C saya berguna seperti yang saya kira. Tujuan C benar-benar membuka mata saya.

pengguna25967
sumber
3

Anda dapat langsung beralih ke Objective-C, dengan keuntungan sebagai berikut:

  1. Anda akan mempelajari "beberapa" C di jalan.
  2. Anda akan mempelajari bagian C yang relevan untuk Anda.

Setidaknya bagi saya lebih mudah untuk mempelajari bahasa baru ketika saya tertarik dengan beberapa aplikasi atau sampel tertentu, dan saya gagal ketika saya harus mempelajari hal lain yang tidak benar-benar saya minati.

Anda selalu dapat menyempurnakan pengetahuan C Anda nanti jika Anda tertarik dengan pemrograman tingkat yang lebih rendah.

OscarRyz
sumber
3

Lebih baik, saya tidak tahu, apalagi karena saya tidak terbiasa dengan Objective-C.
Tetapi basis C tidak terlalu sulit untuk dipelajari, ini bukanlah bahasa yang sangat kompleks (dalam hal sintaksis, bukan dalam hal penguasaan!), Jadi lakukanlah, itu tidak akan membuang-buang waktu.
Secara pribadi, saya pikir mempelajari C selalu merupakan ide yang bagus, ini memberikan pemahaman yang baik tentang cara kerja komputer. Lagi pula, kebanyakan bahasa dan sistem masih ditulis dalam C. Lalu lanjutkan! :-)

PS .: Dengan "move on", yang saya maksud bukan "drop it", hanya "learn more, learn different". Setelah Anda mengetahui C, Anda mungkin tidak akan pernah menjatuhkannya: Java menggunakan JNI untuk memanggil rutinitas C untuk hal-hal tingkat rendah, Python, Lua, dll. Sering diperluas dengan kode C (referensi Lua bahkan hanya mengasumsikan beberapa pengetahuan C untuk beberapa fungsi yang hanya pembungkus tipis untuk fungsi C di belakang), dan seterusnya.

PhiLho
sumber
3

Ya, mempelajari bahasa C sebelum bahasa tingkat lanjut lainnya akan membantu Anda mempelajari bahasa lain dengan cepat.

Coding masa depan
sumber
2

Menurut Wikipedia , Objective-C adalah himpunan super yang ketat dari C. Oleh karena itu, saya sarankan untuk mempelajari C terlebih dahulu. Kemudian ketika Anda mempelajari Objective-C, akan jelas bagian mana yang ditambahkan sebagai bagian dari Objective-C.

Trent
sumber
2

C memberi Anda sedikit abstraksi dari perakitan. Beberapa C Compiler bahkan akan membiarkan Anda perakitan inline. Ini bisa sangat berguna untuk memikirkan cara kerja komputer, yang penting untuk diketahui.

Meskipun demikian, jika Anda benar-benar tertarik dengan Object-C, jangan biarkan diri Anda terjebak menulis sesuatu di C hanya karena "bagus untuk Anda". Anda tidak perlu membuat diri Anda frustrasi saat mencoba mempelajari seperangkat keahlian baru. Penting bagi Anda untuk bersenang-senang dengan apa yang Anda lakukan.

Steve g
sumber
2

Apakah Anda ingin menjadi pengembang inti? Kemudian belajar c dulu.

Buku-buku yang Anda butuhkan untuk menguasai sepenuhnya c adalah beberapa tulisan terbaik dalam bidang teknologi. Inilah yang Anda butuhkan:

Bahasa Pemrograman C

Perpustakaan C Standar

Freddie
sumber
2

Tujuan C cukup berbeda dari C karena tidak perlu mempelajari C terlebih dahulu.

Dari perspektif sintaksis / bahasa-keluarga, seseorang hampir lebih baik mempelajari SmallTalk (yang menjadi dasar tujuan C)

Dari perspektif praktis, fokuskan upaya Anda untuk mempelajari satu bahasa pada satu waktu.

Nanti, jika Anda ingin belajar bahasa lain, C ++, Java dan Python adalah 1) mudah dipelajari bersama 2) populer dan dengan demikian dapat dipasarkan 3) kuat.

Brooks
sumber
1
Tidak, Objective-C adalah superset sangat kecil dari C. Tanpa C, Anda tidak dapat melakukan apa pun di Objective-C. Tentu, model objek diambil dari smalltalk, tetapi sintaksis untuk sebagian besar bahkan tidak dekat.
Sven
2

Anda harus memiliki pengetahuan dasar tentang C sebelum memulai Objective_C, tetapi tidak perlu menguasai setiap detail C.

Saya telah menerbitkan catatan saya setelah membaca "Pemrograman dalam Objective-C" jika itu membantu orang lain.

belajar objektif c dengan pemrograman-

cfischer
sumber
1

Bergantung pada banyak bahasa yang sudah Anda ketahui, mungkin ide yang lebih baik untuk mulai mempelajari Objective-C saja. Landasan di sebagian besar bahasa pada dasarnya sama, sintaksnya yang berbeda. Mempelajari C pertama kali tidak akan membuat banyak perbedaan dalam hal mempelajari Objective-C.

Dave
sumber
Tetapi hanya jika seseorang mengetahui setidaknya satu bahasa pemrograman lainnya.
Sven
Selain komentar @ Sven: "... yang memiliki beberapa konsep petunjuk"
MANIAK_dobrii
1

Saya langsung belajar Objective-C dan itu berfungsi dengan baik selama sekitar satu tahun sekarang, saya hanya mengalami kesulitan membaca kode C ketika saya mengunduh proyek untuk melihat cara kerjanya, tetapi sekarang saya benar-benar merasa perlu untuk belajar C. Anda dapat mencoba belajar ObjC tanpa C, tetapi cepat atau lambat, Anda akan membutuhkan C.

Alexandre Cassagne
sumber
1

IMHO seseorang pertama-tama harus belajar setidaknya beberapa C dan terutama tentang petunjuk. Itu bahkan lebih penting jika seseorang berasal dari bahasa yang tidak memiliki petunjuk. Banyak orang bertanya tentang kode suka

NSString *string = [[NSString alloc] init];
string = @"something";

karena mereka tidak tahu tentang perbedaan antara penunjuk dan objek yang dituju.

Tentu saja orang tidak harus mempelajari semua C sebelum dapat memulai dengan Objective-C, tetapi beberapa hal mendasar mutlak diperlukan.

Sven
sumber
Saya berharap saya dapat memilih +10. Suatu kali dalam sebuah wawancara dev tujuan saya ditanya apakah mungkin untuk membuat pointer ke NSInteger ... Saya terkejut, karena itu sangat penting bagi saya, tetapi, tampaknya tidak untuk semua orang. Jadi ini penting dan mudah dilupakan bahwa ini perlu dipahami juga.
MANIAK_dobrii
0

Tidak, langsung ke tujuan C!

Saya pindah dari ActionScript 3 ke Objective C, dan saya sudah memiliki karyawan magang di sebuah perusahaan!

Lakukan apa yang kamu inginkan.

Nathan
sumber
Mengapa Anda kehilangan sepenuhnya keadaan pikiran Berorientasi Objek dan mulai belajar C terlebih dahulu? Ini seperti belajar menerbangkan layang-layang dan berharap menjadi pilot. Anda harus mengintegrasikan OOP sejak awal.
SwiftArchitect
0

Jika Anda mempelajari beberapa bahasa lain sebelumnya, maka Anda akan selalu mengalami kebingungan dalam menulis sintaks yang benar. Saya tidak tahu tujuannya, tetapi Objek C menggunakan sintaks aneh (tidak umum) untuk memanggil metode objek. Itu menamakannya sebagai pengiriman pesan, ya, memang benar sesuai dengan konsep Berorientasi Objek murni, namun sebagian besar bahasa berorientasi objek menyebutnya sebagai metode pemanggilan dan menggunakan sintaks yang lebih tradisional dari metode pemanggilan. Pengumpulan sampah juga sesuatu yang sangat aneh, Objek C didasarkan pada hitungan referensi jadul. Jadi Anda akan kesulitan menerimanya jika Anda beralih dari bahasa lain. Saya sedang menulis buku panduan migrasi cepat Object C untuk programmer C / C ++ berharap dapat membantu orang untuk mengambil semua perbedaan lebih cepat.

Dmitriy
sumber
Karena di Objective-C "mengirim pesan" bukanlah "memanggil metode", tetapi, pada saat yang sama mengirim pesan menyebabkan pemanggilan metode (fungsi) =) Ketika Anda mengirim pesan ke suatu objek, pesan itu melewati pengiriman pesan mekanisme (Anda dapat membacanya di sini: developer.apple.com/library/ios/documentation/Cocoa/Conceptual/… atau di sini: stackoverflow.com/questions/982116/… )
MANIAK_dobrii