Xcode 4.2 - khai báo '' 'sẽ không hiển thị bên ngoài cảnh báo chức năng này


161

Tôi sử dụng lớp Khả năng tiếp cận của Apple từ Khả năng tiếp cận mã mẫu của Apple

trong Xcode 4.2 và trình biên dịch Apple 3.0 mới, tôi nhận được cảnh báo trong lớp này rằng

+ (Reachability*) reachabilityWithAddress: (const struct sockaddr_in*) hostAddress;

khai báo 'struct sockaddr_in ' sẽ không hiển thị bên ngoài hàm này *

Tôi không giỏi về C% cổ điển) vì vậy tôi không hiểu làm thế nào tôi có thể sửa cảnh báo này hoặc tôi có thể bỏ qua nó.

Cám ơn


Câu trả lời:


353

Thêm #import <netinet/in.h>vào Reachability.h để thoát khỏi điều này


7
Tôi đã quên định dạng nó dưới dạng mã và stackoverflow đã xóa <netinet / in.h> cho tôi :(
Saurabh

3
Và hãy cẩn thận: quá trình nhập đã tồn tại trong Reachability.m - nhưng nó cũng cần thiết trong Reachability.h
brainray 24/212

8
#include, Không #import. Do sự khác biệt tinh tế giữa các tiêu đề C và Objective-C, bạn chỉ nên sử dụng #importcho Objective-C. Pure C nên tiếp tục sử dụng #include.
Jonathan Grynspan

7
#importsẽ ngăn tiêu đề được đưa vào một đơn vị biên dịch hai lần. #includesẽ cho phép nó (và sau đó các macro bảo vệ được sử dụng để ngăn các ký hiệu trùng lặp.) Có một số tiêu đề dự kiến sẽ được đưa vào hai lần.
Jonathan Grynspan

6
Thay vì #import, bạn cũng có thể thực hiện khai báo về phía trước của cấu trúc bị thiếu. Thêm một "struct sockaddr_in;" dòng vào tệp .h
fishinear
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.