2011-09-17 26 views

Trả lời

35

Sử dụng mục tiêu. Đó chính là điều họ đang làm.

Learn more about the concept of targets here.

Thông thường, phần lớn các dự án có một Mục tiêu duy nhất, tương ứng với một sản phẩm/ứng dụng. Nếu bạn xác định nhiều mục tiêu, bạn có thể:

  • bao gồm một số các tập tin mã nguồn của bạn (hoặc có lẽ tất cả) trong cả hai mục tiêu, một số trong một mục tiêu và một số trong khác
  • bạn có thể chơi với Cài đặt xây dựng để biên dịch hai mục tiêu bằng cách sử dụng các cài đặt khác nhau.

Ví dụ, bạn có thể xác định precompiler Macros cho một mục tiêu và macro khác cho người khác (giả sử OTHER_C_FLAGS = -DPREMIUM trong mục tiêu "PremiumVersion" và OTHER_C_FLAGS = -DLITE để xác định LITE vĩ mô trong mục tiêu "LiteVersion") và sau đó bao gồm mã tương tự trong nguồn của bạn:

-(IBAction)commonCodeToBothTargetsHere 
{ 
    ... 
} 

-(void)doStuffOnlyAvailableForPremiumVersion 
{ 
#if PREMIUM 
    // This code will only be compiled if the PREMIUM macro is defined 
    // namely only when you compile the "PremiumVersion" target 
    .... // do real stuff 
#else 
    // This code will only be compiled if the PREMIUM macro is NOT defined 
    // namely when you compile the "LiteVersion" target 

    [[[[UIAlertView alloc] initWithTitle:@"Only for premium" 
     message:@"Sorry, this feature is reserved for premium users. Go buy the premium version on the AppStore!" 
     delegate:self 
     cancelButtonTitle:@"Doh!" 
     otherButtonTitles:@"Go buy it!",nil] 
    autorelease] show]; 
#endif 
} 

-(void)otherCommonCodeToBothTargetsHere 
{ 
    ... 
} 
+1

Nếu bạn đã quen với nó, hãy nghĩ đến các mục tiêu như các tệp hình ảnh khác nhau. Họ có cùng vai trò. – Cyrille

+2

Điều này là rất lớn, cảm ơn bạn. Để có được điều này thực sự làm việc phù hợp với tôi, tôi cần phải làm một mục tiêu sao chép sau đó cập nhật các thiết lập mục tiêu để sử dụng một Info.plist khác cho tên gói của tôi ... – Slee

+4

Lưu ý rằng nếu bạn thêm tệp vào dự án của mình, hãy cẩn thận để thêm tệp vào cả hai mục tiêu và không chỉ tệp đang hoạt động: khi thêm tệp, trong hộp thoại xuất hiện hỏi xem bạn có muốn sao chép tệp hay không, bạn có danh sách mục tiêu và hộp kiểm ở trước mỗi tệp . (Trạng thái hộp kiểm được lưu để bạn có thể chỉ cần kiểm tra điều này một lần) – AliSoftware

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