2010-03-02 46 views
7

Khi tôi đang học API iPhone, cuốn sách tôi đang sử dụng đã giúp tôi làm mọi thứ có thể với Trình tạo giao diện. Chúng tôi (cô đơn ở đây đôi khi) cũng đang viết mã, nhưng tôi thực sự cảm thấy như tôi đang tìm hiểu về Interface Builder khá tốt.Khi nào tôi nên sử dụng Trình tạo giao diện?

Tôi biết rằng Trình tạo giao diện khác với các Trình xây dựng GUI khác vì nó sử dụng các đối tượng được tuần tự hóa và không viết mã. Đây được cho là một điều tốt. Vì vậy, ... trong công việc hàng ngày, nó có phải là công cụ của sự lựa chọn, hay tôi nên cố gắng vượt qua sự phụ thuộc của tôi vào Trình xây dựng giao diện?

Ngoài ra: nếu bạn đề nghị rằng "nó phụ thuộc vào những gì bạn đang làm", nó phụ thuộc vào điều gì? Tôi nên quyết định sử dụng Trình tạo giao diện như thế nào?

Lưu ý: Phiên bản chủ quan và tranh luận của câu hỏi này có tiêu đề, Trình tạo giao diện: Công cụ nghiêm trọng hoặc Chỉ dành cho trẻ em? nhưng tôi đã quyết định chống lại nó vì tôi muốn tránh câu hỏi đóng lại.

Trả lời

13

Trình tạo giao diện thực sự được sử dụng để tạo ứng dụng. Hãy xem bất kỳ ứng dụng Mac dựa trên Cocoa nào - phần lớn không phải do Adobe hoặc Microsoft - và bạn sẽ thấy nó đầy đủ các ngòi bút. Nó phổ biến hơn một chút cho các ứng dụng iPhone được tạo ra mà không có Interface Builder (vì SDK ban đầu được vận chuyển không có IB), nhưng nó vẫn là một công cụ rất phổ biến.

Sự khác biệt giữa Trình tạo giao diện và hầu hết các trình xây dựng GUI khác là Cocoa và Trình tạo giao diện được thiết kế với nhau trong tâm trí. Trên thực tế, nếu bạn tìm kiếm Cocoa mailing list archives, bạn sẽ tìm thấy nhiều người trong những năm qua tự hỏi làm thế nào để có thể tạo ứng dụng Cocoa mà không cần bằng cách sử dụng Trình tạo giao diện. (Câu trả lời là luôn luôn giống nhau: Bạn có thể làm tất cả trong mã, nhưng bạn chỉ muốn lãng phí thời gian của bạn và làm cho nó khó khăn hơn để thiết kế một giao diện tốt.)

+0

Cảm ơn, đây là loại gì tôi đã suy nghĩ. Ít nhất đó là một lưu ý tích cực trong một ngày đầy tính tham chiếu. –

+0

Tôi biết đây là câu hỏi cũ và câu trả lời cũ - tuy nhiên tôi hoàn toàn đồng ý với câu trả lời này. – Moszi

+0

@Moszi, bạn cũng có thể xem qua tất cả các câu trả lời của Chuck tại đây trên SO. Chúng liên tục sâu sắc và mang tính thông tin. –

3

Trình tạo giao diện là tuyệt vời nếu bạn định sử dụng tiêu chuẩn Các thành phần giao diện người dùng UIKit. Sử dụng Trình tạo giao diện để thiết kế giao diện người dùng dựa trên UIKit cũng giúp bạn tuân theo Apple iPhone Human Interface Guidelines.

Chỉ có một số ít trường hợp bạn không muốn sử dụng Trình tạo giao diện, một trong những trường hợp rõ ràng nhất là trò chơi cung cấp giao diện độc đáo của riêng họ.

Tôi không nghĩ bạn cần phải quan tâm đến việc xây dựng "sự phụ thuộc vào Trình tạo giao diện". Đó là một công cụ, giống như bất kỳ công cụ nào khác. Sử dụng nó không phải là một sự phụ thuộc, nó chỉ là cách chúng ta hoàn thành công việc.

+1

cảm ơn Brian, điều này không đúng với các công cụ GUI khác trên các nền tảng khác. Mã được tạo với các nhà xây dựng thường-lần có vẻ khủng khiếp và có thể khó duy trì. Vì vậy, tôi không nghĩ nó giống như bất kỳ công cụ nào khác. Dường như nó cũng phù hợp với việc KHÔNG sử dụng nó, hoặc sử dụng nó đôi khi. –

3

Trình tạo giao diện là một công cụ tuyệt vời. Sử dụng nó nhiều như bạn có thể.
Khi bạn không thể làm điều gì đó bằng cách sử dụng Trình xây dựng giao diện chỉ, thì đã đến lúc viết mã kết hợp IBOutlets và mã, hoặc chỉ thực hiện trong mã.

2

Trình tạo giao diện không tạo mã, nó chỉ tạo biểu đồ đối tượng của các lớp hiện có. Nếu bạn nhìn vào tập tin nib bạn có thể thấy điều này. Nó chỉ là một danh sách các quy tắc cho những gì các đối tượng để tạo ra và những mối quan hệ để thiết lập giữa chúng. Không có mã trong một ngòi và có rất ít mã đáng ngạc nhiên trong các phương thức loadFromNib khác nhau.

Đây là khớp nối thời gian chạy trong Mục tiêu-c, làm cho tất cả điều này có thể xảy ra. Tôi không có bất kỳ ngôn ngữ nào khác thực sự có thể kéo nó ra.

+0

Có lẽ tôi sai, nhưng tôi nghĩ rằng ngay cả Java có khớp nối Thời gian chạy (thông qua Phản xạ và lời gọi động) ... mặc dù không có trình xây dựng giao diện, về mặt lý thuyết có thể bằng nhiều ngôn ngữ. Không? –

+1

Java được lấy cảm hứng một phần bởi Objective-C để nó đến gần nhưng IIRC, Java không có đối tác với tham chiếu "id" để nó không linh hoạt như Objective-C trong lĩnh vực này. Mỗi ngôn ngữ có một cái gì đó nó làm tốt hơn so với những người khác và khớp nối thời gian chạy là mục tiêu-C forte. – TechZen

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