Sejak mulai mengerjakan aplikasi iOS dan objektif C, saya benar-benar bingung dengan lokasi berbeda di mana seseorang dapat mendeklarasikan dan menentukan variabel. Di satu sisi kami memiliki pendekatan C tradisional, di sisi lain kami memiliki arahan ObjectiveC baru yang menambahkan OO di atasnya. Bisakah kalian membantu saya memahami praktik terbaik dan situasi di mana saya ingin menggunakan lokasi ini untuk variabel saya dan mungkin memperbaiki pemahaman saya saat ini?
Berikut adalah contoh kelas (.h dan .m):
#import <Foundation/Foundation.h>
// 1) What do I declare here?
@interface SampleClass : NSObject
{
// 2) ivar declarations
// Pretty much never used?
}
// 3) class-specific method / property declarations
@end
dan
#import "SampleClass.h"
// 4) what goes here?
@interface SampleClass()
// 5) private interface, can define private methods and properties here
@end
@implementation SampleClass
{
// 6) define ivars
}
// 7) define methods and synthesize properties from both public and private
// interfaces
@end
- Pemahaman saya tentang 1 dan 4 adalah bahwa itu adalah deklarasi dan definisi berbasis file gaya-C yang tidak memiliki pemahaman apa pun tentang konsep kelas, dan dengan demikian harus digunakan dengan tepat bagaimana mereka akan digunakan di C. Saya telah melihatnya digunakan untuk menerapkan lajang berbasis variabel statis sebelumnya. Apakah ada kegunaan praktis lain yang saya lewatkan?
- Saya mengambil dari bekerja dengan iOS adalah bahwa ivar telah sepenuhnya dihapus di luar direktif @synthesize dan dengan demikian sebagian besar dapat diabaikan. Apakah itu masalahnya?
- Mengenai 5: mengapa saya ingin mendeklarasikan metode dalam antarmuka pribadi? Metode kelas privat saya tampaknya dapat dikompilasi dengan baik tanpa deklarasi di antarmuka. Apakah sebagian besar untuk keterbacaan?
Terima kasih banyak, teman-teman!