В C ++ #include
и использование имеют разные функции.
#include
помещает текст включенного файла в ваш исходный файл (на самом деле блок перевода ), а пространства имен с другой стороны - это просто механизм, позволяющий иметь уникальные имена, чтобы разные люди могли создавать " foo "объект.
Это происходит из-за того, что C ++ не имеет понятия модуля.
Имейте в виду, что пространства имен в C ++ открыты, это означает, что разные файлы могут определять разные части одного и того же пространства имен (что-то вроде частичных классов .NET).
//a.h
namespace eg {
void foo();
}
//b.h
namespace eg {
void bar();
}
NSNetService, который вы возвращаете в обратном вызове, не готов к использованию. Вы должны вызвать следующий метод, чтобы получить для него адреса:
- (void)resolveWithTimeout:(NSTimeInterval)timeout;
Реализуйте метод делегата NSNetService, чтобы узнать, когда он разрешается:
- (void)netServiceDidResolveAddress:(NSNetService *)sender;
В этот момент в службе должен быть хотя бы один адрес.
Также внимательно прочтите документацию и заголовочный файл! Здесь есть некоторая сложность, которую я замалчил.