cari

Rumah  >  Soal Jawab  >  teks badan

objective-c - 求教iOS开发知识

做iPhone/iPad需要哪些知识??

洒家只知道要会 Objective-c,
熟悉 iOS SDK
工具是 xcode

基础的 数据结构、算法、多线程、Socket、XML ,这些应该也是要掌握的,
还有些啥?

或者,能不能细化一下Objective-c的重要技术点?谢谢。。

黄舟黄舟2867 hari yang lalu434

membalas semua(4)saya akan balas

  • 怪我咯

    怪我咯2017-04-17 17:32:24

    Sebagai pembangun yang beralih kepada pembangunan iOS separuh jalan, berdasarkan pengalaman pembangunan saya selama dua bulan, Objektif-C tidak sukar sama sekali. Program yang saya bangunkan telah melalui perubahan berikut, dan saya juga mengambil peluang untuk meringkaskan keuntungan dan kerugian

    Dunia hello yang paling terencat

    Buat projek baharu daripada xcode, kemudian buka Editor Tetingkap (Pembina Antaramuka, singkatan IB), seret ke dalam komponen UILabel, tulis "Hello World", dan anda selesai.

    Fahami komposisi kod

    Walaupun namanya "objektif-c", ia nampaknya berbeza sama sekali daripada bahasa C yang saya tulis sebelum ini. Ia penuh dengan peraturan yang tidak terkira banyaknya yang mengelirukan orang baru.

    1. Mengapa menggunakan #import dan bukannya #include?
    2. Apakah itu @property? Apakah tindak balas kimia pelik yang akan berlaku dengan (strong, nonatomic) di dalam kurungan Mengapa saya perlu menambah @interface selepas mengisytiharkan atribut dalam @property? @synthesize
    Peringkat ini pada asasnya memfokuskan kepada banyak soalan pemula Nasib baik, jawapan kepada soalan ini mudah dicari dalam talian, dan jika anda mempunyai asas bahasa lain, ia akan menjadi mudah untuk memahami tatabahasa ini.

    Kod yang saya tulis pada peringkat ini pada asasnya mengerikan Semua kod diletakkan dalam pengawal Satu adalah kerana saya malas, dan satu lagi kerana saya tidak menguasai gaya pengekodan dalam dunia pembangunan objektif-c. jadi Cukup jangan gunakan gaya. Kod anda mungkin diisi dengan

    atau IBOutlet. IBAction

    Tetapi selagi kod anda berfungsi, semuanya berbaloi.

    Pandangan pertama ke dalam intipati

    Salah satu intipati rangka kerja koko ialah

    , yang diterjemahkan ke dalam bahasa Cina sebagai mod "wakil" (terjemahan literal saya sendiri ialah mod "ejen"). Walaupun model ini tidak asli kepada Koko, ia juga merupakan salah satu kegunaan terbaiknya. Mod delegate menyelesaikan masalah interaksi antara delegate dan controller. view

    Apabila saya menulis kod, saya sering mendapati bahawa selagi

    , banyak perkara menarik akan berlaku. Selain itu, anda akan mendapati bahawa komponen asas yang disebut oleh iOS ini tidak lagi dapat memenuhi keperluan interaksi anda Pada masa ini, anda mungkin perlu mula melanjutkan beberapa komponen asasnya. seDelegate

    Sangat mudah untuk memanjangkan komponen asasnya, dan terdapat banyak antara muka yang dikhaskan dalam sdk untuk kami

    . Biasanya pada masa ini, apabila anda melihat kod hodoh yang anda tulis sebelum ini, anda tidak boleh tidak mula memfaktorkannya, jadi teruskan dan lakukan semula. override

    Mudah digunakan

    Malah, setelah memahami beberapa peraturan tersembunyi

    dunia, selain menguasai APInya, ia pada dasarnya telah menjadi bahasa alat biasa. objective-c

    Tetapi harus diingat bahawa ARC, perkara pengiraan rujukan automatik, telah diperkenalkan dalam xcode 4 dan kemudiannya, dan ia dihidupkan secara lalai. Ia mungkin menyebabkan anda mengalami masalah. Ramai pemula bimbang bahawa membiarkan sistem menguruskan memori akan menyebabkan pembaziran memori Malah, selepas memahami prinsipnya, mereka mendapati bahawa pelaksanaannya sangat mudah, apabila tiada siapa yang merujuk objek, sistem akan memadamkannya secara automatik. . Membiarkannya kepada sistem juga boleh mengelakkan pembentukan pemecahan memori, tetapi jika anda perlu kerap membaca dan menulis memori dalam kawasan memori, seperti baris gilir mesej yang dilaksanakan oleh anda sendiri, adalah disyorkan untuk melaksanakannya sendiri melalui release. struct

    Tetapi jika anda mentakrifkan struct sedemikian

    typedef struct _Test {
    
        NSString *name;
    
    } Test;

    Pengkompil akan memberitahu anda bahawa objek objektif-c tidak boleh dirujuk dalam struct. Kerana ARC tidak boleh mengawal kiraan rujukan dalam struct. Tetapi bagaimana jika anda perlu merujuk objek dalam struct Anda boleh menggunakan

    untuk menyimpan penunjuk void *

    typedef struct _Test {
        void *namePtr;
    } Test;
    
    // malloc的指针也不会被arc, 注意自己释放
    Test test = (Test *)malloc(sizeof(Test));
    test.namePtr = (__bridge void *)[NSString stringWithString:@"Hello"];

    Tetapi terdapat masalah dalam kod di atas,

    hanyalah pembolehubah sementara Walaupun ia ditunjuk oleh penunjuk struct, seperti yang dinyatakan sebelum ini, ini tidak akan menyebabkan kiraan rujukan [NSString stringWithString:@"Hello"]. ARC

    Ini bermakna ARC akan berfikir bahawa tiada siapa yang merujuk kepada pembolehubah ini Jika tiada perkara lain yang berlaku, selepas kod ini dilaksanakan, memori ini akan dituntut semula oleh sistem. Jika anda memanggil memori yang ditunjuk oleh penuding ini sekali lagi, anda hanya akan mendapat ralat

    . EXC_BAD_ACCESS

    Penyelesaian sebenarnya sangat mudah Kita boleh memaksa ARC untuk mengira, contohnya, tetapkan pembolehubah dalam

    semasa untuk menunjuk ke rentetan ini supaya ia tidak akan dilepaskan @interface

    @interface TestObj : NSObject {
        NSString *name;
    }
    
    - (void)initName
    {
        name = [NSString stringWithString:@"Hello"];    // 强制引用
        Test test = (Test *)malloc(sizeof(Test));
        test.namePtr = (__bridge void *)name;
    }

    OK, ia agak kucar-kacir selepas bercakap banyak, dan akhirnya saya mengadu tentang ARC. Kesimpulan terakhir ialah ia cepat untuk bermula, tetapi anda juga perlu belajar sendiri untuk mempelajarinya dengan baik.

    balas
    0
  • 阿神

    阿神2017-04-17 17:32:24

    Tahap pertama: sintaks objektif-c boleh dipraktikkan dengan jayanya dalam masa tiga hari
    Lapisan kedua: UI pekerja asing: penggunaan UIView, UILabel, UIImageView, UITableView, UINavigationController dan UITabBarViewController. Ia mengambil masa satu hingga dua bulan untuk berlatih bergantung pada kelayakan anda.
    Lapisan ketiga: pelbagai API berfungsi: permintaan rangkaian, ketekunan, buku alamat, GPS, API e-mel dan pelbagai API. Setengah tahun
    Lapisan keempat: Kemajuan UI: skrin berputar, animasi teras, paparan lukisan tersuai, konteks lukisan, dsb. Setengah tahun
    Tahap 5: Kemahiran lanjutan: masa jalan, cocos, OpenGLES, dsb. Amalan masih belum selesai dan tarikh yang diperlukan belum diketahui.

    balas
    0
  • PHPz

    PHPz2017-04-17 17:32:24

    Cadangan 1, jangan belajar secara sistematik
    Cadangan 2, mulakan dengan menulis Hello World, tulis apl satu demi satu dan pelajari perkara yang anda gunakan
    Cadangan 3, tiada buku di pasaran boleh dipercayai
    Cadangan 4, baca dokumen rasmi dan kod contoh

    balas
    0
  • 黄舟

    黄舟2017-04-17 17:32:24

    Sebuah gambar akan memberitahu anda! Sila baca artikel: http://www.henishuo.com/ios-study-route/

    balas
    0
  • Batalbalas