2015-04-05 15 views
5

Trong mục tiêu-C chúng ta có các tên phương thức như application:didFinishLaunchingWithOptions:, nhưng trong Swift phương thức cho cùng một công việc trông khác nhau.Tên phương thức trong Swift

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 
    // Override point for customization after application launch. 
    return true 
} 

Tên của phương thức này chỉ đơn giản là application vì mọi thứ khác chỉ là tham số? Hay nó được gọi là application didFinishLaunchingWithOptions với một khoảng trống trong tên? Tôi đang tìm kiếm câu trả lời chính thức trong Tài liệu Apple nhưng tôi không thể tìm thấy câu trả lời.

+0

sử dụng "" ứng dụng: "' – duan

Trả lời

7

Phương pháp này thực sự được gọi là application, tuy nhiên didFinishLaunchingWithOptions là một tên tham số bên ngoài và:

Nếu bạn cung cấp một cái tên thông số bên ngoài cho một tham số, đó là tên bên ngoài luôn luôn phải được sử dụng khi bạn gọi hàm.

Vì có thể có hai hàm gọi là application với các tên thông số bên ngoài khác nhau, chúng tôi luôn phải chỉ định tham số bên ngoài khi tham chiếu đến hàm. Vì vậy, toàn bộ tên của hàm/phương pháp sẽ

application(_:didFinishLaunchingWithOptions:) 

Bạn đang ngay tại đó đã không được bất kỳ ước làm nào cho đề cập đến chức năng Swift. Cách an toàn nhất để tham chiếu đến một hàm bây giờ là sử dụng quy ước Obj-C.

application:didFinishLaunchingWithOptions: 

Điều gì vẫn được sử dụng trong tất cả các liên kết tài liệu của Apple.

Quy ước này được sử dụng trong toàn bộ tài liệu của Apple.

+2

Đây là câu trả lời hay nhất và bao gồm tất cả các mối quan tâm và các điểm thú vị (ngoại trừ tài liệu hướng dẫn rõ ràng chúng thông qua phiên bản Objective-C): http://i.imgur.com/QVcdcRB.png (có một hộp nhỏ ở đầu trang của tài liệu để chọn "Objective-C", "Swift", hoặc "Both" Nếu bạn đặt nó trên Swift, kiểu Swift sẽ hiển thị như thế này. – nhgrif

0

Ý của bạn là gì, tên của nó trong tài liệu? nó là application(_:didFinishLaunchingWithOptions:) Tôi không thể tưởng tượng tình huống khi bạn cần phải gọi nó bằng tay nhưng chỉ trong trường hợp:

application(app, didFinishLaunchingWithOptions:aDictionary) 
1

Phương pháp này thực sự là “chỉ” application.
Swift sử dụng này thường xuyên hơn, nếu bạn có một tableview ví dụ hầu hết các chức năng bắt đầu với tableview

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {} 
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {} 

Các thông số “xác định” các chức năng thay vì phương pháp này.

0

Đặt tên giống hệt nhau ở cả hai ngôn ngữ.

Nếu bạn muốn có bằng chứng tốt, hãy thử sử dụng bất kỳ cách đặt tên nào khác trong bộ chọn.

+2

Trong khi câu trả lời này làm cho một điểm tốt, nó chắc chắn có thể làm một công việc tốt hơn nhiều để giải thích điểm của nó. – nhgrif

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