Xcode 4.2 - การประกาศ '... ' จะไม่ปรากฏให้เห็นนอกคำเตือนฟังก์ชั่นนี้


161

ฉันใช้คลาสการเข้าถึงของ Apple จากตัวอย่างรหัสการเข้าถึงของ Apple

ใน Xcode 4.2 และ Apple 3.0 compiler ใหม่ฉันได้รับคำเตือนในคลาสนี้ว่า

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

ประกาศ 'struct sockaddr_in ' จะไม่ปรากฏให้เห็นนอกฟังก์ชั่นนี้ *

ฉันไม่เก่ง C% คลาสสิก) ดังนั้นฉันไม่เข้าใจว่าฉันจะแก้ไขคำเตือนนี้ได้อย่างไรหรืออาจจะเพิกเฉยได้

ขอบคุณ


2
ดูเพิ่มเติมที่: stackoverflow.com/a/8684721/449161
Ben Flynn

คำตอบ:


353

เพิ่ม#import <netinet/in.h>ในความสามารถเข้าถึงได้เพื่อหลีกเลี่ยงสิ่งนี้


7
ฉันลืมที่จะจัดรูปแบบเป็นรหัสและ stackoverflow ลบ <netinet / in.h> สำหรับฉัน :(
Saurabh

3
และดูแล: การนำเข้ามีอยู่แล้วใน Reachability.m - แต่ก็จำเป็นสำหรับการเข้าถึงได้เช่นกัน
ระดมสมอง

8
#include#importไม่ เนื่องจากความแตกต่างเล็กน้อยระหว่างส่วนหัว C และ Objective-C คุณควรใช้#importสำหรับ Objective-C เท่านั้น C #includeบริสุทธิ์ควรจะยังคงใช้
Jonathan Grynspan

7
#importจะป้องกันไม่ให้ส่วนหัวถูกนำเข้าไปยังหน่วยรวบรวมสองครั้ง #includeจะอนุญาต (และใช้มาโครป้องกันเพื่อป้องกันสัญลักษณ์ที่ซ้ำกัน) มีส่วนหัวบางส่วนที่คาดว่าจะนำมาสองครั้ง
Jonathan Grynspan

6
แทนที่จะเป็น #import คุณสามารถทำการประกาศล่วงหน้าของ struct ที่หายไปได้ เพิ่ม "struct sockaddr_in เดียว" บรรทัดไปยังไฟล์. h
fishinear
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.