2015-01-19 12 views
14

Tôi mới đến Swift. Tôi đã tạo số gọi swift file thứ hai DeviceInfo.swift và thêm UIViewcontroller vào Main.storyboard.Tại sao "Sử dụng kiểu không khai báo UITableView" xảy ra trong Swift?

Tôi cũng thêm UITableView vào UIViewcontroller(DeviceInfo).

Nhưng lỗi Use of undeclared type 'UITableView' chương trình sau khi tôi kết nối các UITableView-DeviceInfo.swift qua command + left. Lỗi hiển thị như sau. enter image description here

Câu hỏi

1. Tại sao Use of undeclared type 'UITableView' đã xảy ra? Làm thế nào để giải quyết nó?

2. Hiện tôi kết nối dataSourcedelegate đến UIViewcontroller(DeviceInfo)?

Xin cảm ơn trước.

Trả lời

17

1. import UIKit

2.To kết nối delegatedataSource, nhấp vào điểm và kéo để tableView của bạn. enter image description here

+0

Bạn có nghĩa là, kết nối 'delegate' và' DataSource' của 'UITableView' với' View' không 'UIViewController'? Tại sao ? – Martin

+0

Tôi đã phạm sai lầm. Có, nó phải là UIViewController. Bởi vì UIViewController của bạn cần phải biết về cách hiển thị dữ liệu, và tableView cần phải yêu cầu UIViewController để làm điều gì đó mà tableView không thể làm điều đó một mình. Chẳng hạn như 'didSelectedRowAtIndex' hoặc người nào khác. –

9

Bạn cần thêm import UIKit ở đầu tệp của mình, trong khu vực bạn đã có import Foundation. Nếu không có UIKit được nhập khẩu, đối tượng của bạn không biết UITableView là gì.

+0

Giới thiệu câu hỏi 2, tôi nên kết nối gì với 'datasource' và 'delegate'? 'UIViewController' hoặc' View'? – Martin

+0

@Martin UIViewController –

+0

Điều đó làm việc tốt cho tôi .. – Ramakrishna

0

UITableView trong khung UIKit, bạn đã không nhập khẩu đó. SO import UIKit.

Trong viewDidLod của bạn:

self.tableView.dataSource = self; 
self.tableView.delegate = self; 

Trong .h của bạn tập tin bạn có thể làm:

@interface YourClassName : UIViewController<UITableViewDataSource,UITableViewDelegate> 

Và chắc chắn rằng bạn đã kết nối tableView với một IBOutlet. #import <UIKit/UIKit.h>

+0

Về câu hỏi 2, tôi nên kết nối gì với 'datasource' và 'delegate'? 'UIViewController' hoặc' View'? – Martin

+0

@Martin> Xem chỉnh sửa của tôi. – Rashad

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