2009-02-16 25 views
14

Nếu tôi khai báo một chuỗi liên tục như vậy:Integer hằng

Bạn nên tạo một tập tin tiêu đề như

// Constants.h 
extern NSString * const MyFirstConstant; 
extern NSString * const MySecondConstant; 
//etc. 

Bạn có thể bao gồm tập tin này trong mỗi tập tin có sử dụng các hằng số hoặc trong tiền biên dịch tiêu đề cho dự án.

Bạn xác định các hằng số trong một file .m như

// Constants.m 

NSString * const MyFirstConstant = @"FirstConstant"; 
NSString * const MySecondConstant = @"SecondConstant"; 

gì Tôi phải làm để xác định hằng số nguyên?

Trả lời

37

Thay thế NSString * bằng NSInteger.

Điều này đúng với bất kỳ loại cố định nào, có thể là nguyên thủy như int/float hoặc một lớp như NSString hoặc NSInteger.

Điều duy nhất phải nhận thức được là liệu bạn mong muốn một hằng số hoặc một con trỏ đến một hằng số (ví dụ như withNSString), và làm thế nào nó được khởi tạo trong file .m

Integer Ví dụ:

// constants.h 
extern NSInteger const MyIntegerConstant; 

// constants.m 
NSInteger const MyIntegerConstant = 666; 

(Lưu ý: vì lý do tại sao NSInteger thay vì chỉ thường xuyên "int", xem this post) ví dụ

class:

// constants.h 
extern MyClass* const MyClassConstant; 

// constants.m 
MyClass* const MyClassConstant= [[MyClass alloc] initWith: paramOne and:paramTwo]; 
+0

Cảm ơn andrew - Lớp học này sẽ được deallocated? –

+0

Nó sẽ không được, bộ nhớ của nó sẽ được làm sạch khi chương trình thoát. Nếu bạn muốn có điều khiển bằng tay, bạn có thể thêm các hàm initializeConsts/releaseConsts vào đầu/cuối chương trình của bạn –

+1

Cảm ơn andy - Tôi đang sử dụng mã ở trên trong phần bổ sung của mình và tôi nhận được lỗi biên dịch trong các câu lệnh Switch của tôi : "MyIntegerConstant" không tương đương với số nguyên –