2013-04-18 42 views

Trả lời

9

Bạn có thể làm điều đó bằng preprocessors:

#define API_URL @"http://api.service.com" 
#define SOME_VALUE (7) 

định nghĩa Truy cập sẽ là đơn giản: [object do:API_URL];

Hoặc bạn có thể sử dụng hằng

NSString * const apiURL = @"http://api.service.com"; 
NSNumber * const someValue = @7; 

consts Truy cập sẽ như thế nào truy cập biến, Vì vậy, chuỗi sẽ chỉ là một cuộc gọi đơn giản. NSNumber là một trình bao bọc đối tượng cho các nguyên thủy, do đó bạn cần truy cập vào nó như sau: someValue.intValue

+0

Điều đáng chú ý là một vấn đề về phong cách (và để tránh các lỗi bị rớt vào) những #defines đó thực sự là, ví dụ '#define SOME_VALUE (7)'. Tôi cũng mạnh mẽ không khuyến khích thực hành này cho các ứng dụng không được nhúng, vì nó không được kiểm tra kiểu và chi phí bộ nhớ của các biến tĩnh thực sự không phải là một vấn đề lớn đối với iOS/OS X. – sapi

+0

Điểm tốt. Chỉ muốn ném ra một số lựa chọn cho anh ta. đã chỉnh sửa. –

+1

Đối với bất kỳ ai đến đây trong tương lai. Hằng số chắc chắn là phương pháp ưa thích. Hằng số cho phép trình biên dịch thực hiện một số tối ưu hóa cho bạn trong khi xác định chỉ đơn giản là cải thiện trải nghiệm của bạn bằng mã tự động hoàn toàn phổ biến. –

0

Bạn có thể tạo một Singleton với tất cả các hằng số cần thiết Here is a sample

Nếu bạn không muốn để tạo ra các lớp hơn bạn có thể sử dụng các biến private static và thu khí tĩnh.

@interface 

+(NSString*) getValue; 

@end 


@implementation 

static NSString *_value = @"...."; 

+(NSString*) getValue { 
    return _value; 
} 

@end 
+0

Tôi không cần phải bắt đầu lớp học - Tôi chỉ muốn truy cập các thuộc tính theo cách tĩnh. – hsz

+0

Nhìn vào bản cập nhật của tôi –

13

Trả lời cho câu hỏi của bạn là extern từ khóa. Tôi sẽ giải thích cho bạn bằng cách sử dụng một ví dụ. Thêm lớp c Mục tiêu dự án của bạn và đặt tên cho chúng Common, Bây giờ trong Common.h

 @interface Common : NSObject 

    extern NSString *SiteApiURL; 

    @end 

Sau khi bạn định nghĩa một thể hiện của NSString lớp sử dụng từ khóa extern những gì bạn cần làm là chuyển sang lớp Common.m và khởi tạo giá trị cho NSString (SiteApiURL)

 #import "Common.h" 

    @implementation Common 

    NSString *SiteApiURL = @"http://api.service.com"; 

    @end 

nhập lớp Common.h trong dự án Prefix.pch nộp như thế này

#import <Availability.h> 

    #ifndef __IPHONE_3_0 
    #warning "This project uses features only available in iOS SDK 3.0 and later." 
    #endif 

    #ifdef __OBJC__ 
     #import <UIKit/UIKit.h> 
     #import <Foundation/Foundation.h> 
     #import "Common.h" 
    #endif 

Đã xong, bây giờ bạn có thể sử dụng o bject "SiteApiURL" ở bất kỳ đâu trong toàn bộ dự án và bạn không cần phải nhập bất kỳ lớp nào ở bất kỳ đâu tức là Bạn có thể sử dụng biến này ở bất kỳ đâu trong dự án trực tiếp.

Các vấn đề liên quan