2015-05-13 10 views
13

tôi đang theo một hướng dẫn tôi tìm thấy trên các trang web, đã có dòng mã như thế này:Làm cách nào để đọc tài liệu Apple iOS chính xác?

var myImage = UIImage(named: "icon") 

tôi hiểu những gì dòng này không, nhưng tôi không muốn ghi nhớ tất nhiên, tôi muốn hiểu cách tác giả đã đưa ra mã này, vì vậy tôi tìm kiếm tài liệu tham khảo lớp UIImage, không có gì trong phần khởi tạo xác định mã này, vậy tại sao? Tôi có thể tìm thêm thông tin về mã này ở đâu?

Tôi đọc rất nhiều hướng dẫn tôi tìm thấy trên web, xem rất nhiều video hướng dẫn và đọc rất nhiều sách, TẤT CẢ chúng không có ngoại lệ cho thấy mã, họ giải thích đầy đủ, NHƯNG họ không 't cho bạn biết làm thế nào họ đến với nó, làm thế nào họ đã tìm được phương pháp đúng cho công việc đúng?

Tôi có nên dành thời gian đọc tài liệu của Apple thay vì tất cả các hướng dẫn này không? Có điều gì tôi đang làm sai? Tui bỏ lỡ điều gì vậy? Tôi không muốn ghi nhớ tất cả những thứ tôi đọc, đó không phải là lý do tại sao tôi muốn học các ứng dụng đang phát triển, tôi muốn tìm nơi để tìm đúng mã, tôi muốn học cách suy nghĩ như một nhà phát triển.

Trả lời

8

Có 3 nguồn thông tin hữu ích bằng văn bản:

  1. Ví dụ mã/Hướng dẫn:

    Các tài liệu chính thức là rất tốt khi bạn có một số kinh nghiệm mã hóa trong Xcode/iOS, nhưng nó là một nơi khó khởi đầu. Không có gì đập vào mã mẫu tốt.

    Mã ví dụ (từ Apple, từ Stack Overflow, từ Ray Wenderlich, từ bất cứ đâu bạn có thể tìm thấy nó) là một cách tuyệt vời để tìm hiểu. Ngay cả những người viết hướng dẫn bạn đang đọc bắt đầu với mã mẫu của người khác. Những người đầu tiên học iOS bắt đầu với mã mẫu từ Apple.

  2. Các tài liệu chính thức:

    Để có được chính thức tài liệu tùy chọn nhấp chuột vào UIImage trong mã của bạn hoặc trong sân chơi. Trong cửa sổ bật lên, chọn Tham chiếu lớp UIImage. Trình khởi tạo bạn đang tìm kiếm là:

    + imageNamed:
    Trả về đối tượng hình ảnh được liên kết với tên tệp được chỉ định.

    Tuyên bố
    SWIFT
    init?(named name: String) -> UIImage

    Objective-C
    + (UIImage *)imageNamed:(NSString *)name

    thông số
    tên Tên của tập tin. Nếu đây là lần đầu tiên hình ảnh được tải, phương thức sẽ tìm hình ảnh có tên được chỉ định trong gói chính của ứng dụng.

    Giá trị trả lại Đối tượng hình ảnh cho tệp được chỉ định hoặc không nếu phương thức không thể tìm thấy hình ảnh được chỉ định.

    Trong Swift, tất nhiên, bạn không gọi trực tiếp cho người khởi tạo bằng cách gọi init. Thay vào đó, bạn sử dụng tên lớp, UIImage trong trường hợp này. name là tên nội bộ của tham số và ? cho bạn biết đây là trình khởi tạo có thể trả về nil, vì vậy trên thực tế, trình khởi tạo này trả về UIImage?. Vì vậy, bạn nên xem init?(named name: String) -> UIImage và suy nghĩ UIImage(named: String) -> UIImage?.

  3. Các tập tin tiêu đề:

    Loại UIImage vào mã của bạn hoặc một sân chơi và lệnh -Click vào nó. Điều đó sẽ hiển thị thông tin tệp tiêu đề cho UIImage. Initializer đầu tiên niêm yết là:

    init?(named name: String) -> UIImage // load from main bundle 
    

Bạn có thể học được rất nhiều từ việc đọc các tiêu đề. Tôi khuyên bạn nên kiểm tra chúng thường xuyên.

1

1) Phần này nằm trong phần "Tải xuống hình ảnh được lưu trong bộ nhớ cache". Có lẽ bạn cần chuyển sang mã Swift trong tài liệu?

2) Hướng dẫn và ví dụ mã là tốt để học ngôn ngữ, nền tảng và thực hành tốt. Bạn có thể sao lưu nó với tài liệu tham khảo bài giảng.

+0

Làm cách nào để chuyển sang mã Swift trong tài liệu? –

+0

Ở góc trên cùng bên phải của mỗi trang tài liệu lớp bạn có "Ngôn ngữ: Objective-C Swift Both". Chỉ cần chọn những gì bạn cần. –

+0

"Ở góc trên cùng bên phải của mỗi trang tài liệu lớp học?" Bạn có nghĩa là trên cửa sổ trợ giúp trong Xcode? Ở đâu, chính xác, và nó ở gần? Tôi không thấy nó. –

4

Bit khó hiểu là cách Swift giao dịch với bộ khởi tạo. Tôi đề nghị "mua" miễn phí "Ngôn ngữ lập trình Swift" iBook và đọc chương trên các bộ khởi tạo.

Từ "init" xuất hiện trong khai báo của bộ khởi tạo, nhưng bạn không sử dụng từ init khi gọi nó.

Việc kê khai là

init?(named name: String) -> UIImage 

Dấu chấm hỏi cho bạn biết rằng đó là một "failable" initializer.

Thay vì gọi nó với init từ, bạn đặt tên lớp như thể đó là tên phương pháp, và các thông số sau:

UIImage(named: "name") 

Nó trở nên phức tạp hơn cho các phương pháp init như initWithFrame:. Trong trường hợp đó, nó phân tích cú pháp "with" và tạo một tham số "frame".

Tôi sẽ không đề cập đến mọi thứ ở đây. (Tôi vẫn đang học các sắc thái bản thân mình.) Như tôi đã nói, hãy đọc chương về bộ khởi tạo trong cuốn sách Swift iBook.

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