Как распечатать содержимое NSSet?

Я запрашиваю и получаю NSSet, который содержит адрес клиента из Интернета. Поскольку я новичок в объектной разработке c, я не знаю, как получить страну, почтовый индекс и т. Д. Из этого набора. Поэтому я следил за Objective-C. Как печатать NSSet в одной строке (без конечной запятой / пробела), но мой вывод в виде объекта «0x7f99997b7a50». Как распечатать все строки в наборе? Заранее спасибо.

Я так пробовал

NSArray *ar = [customer.addresses allObjects]; for (int i = 0; i<ar.count; i++) { NSLog(@"arr %@",ar[i]); } 

Но вывод: arr:

  <BUYAddress: 0x7fd451f6e050> 

2 Solutions collect form web for “Как распечатать содержимое NSSet?”

Если у вас есть пользовательский объект, вам может потребоваться переопределить description

Без переопределения:

 -(void) testCustomObjects { CustomObject *co1 = [[CustomObject alloc] init]; co1.name = @"James Webster"; co1.jobTitle = @"Code Monkey"; CustomObject *co2 = [[CustomObject alloc] init]; co2.name = @"Holly T Canine"; co2.jobTitle = @"Pet Dog"; NSSet *set = [NSSet setWithObjects:co1, co2, nil]; NSLog(@"%@", [set allObjects]); } 

производит:

 2016-12-02 11:45:55.342 Playground[95359:4188387] ( "<CustomObject: 0x600000037a20>", "<CustomObject: 0x60000003ae20>" ) 

Однако, если я переопределяю метод description в моем классе CustomObject :

 -(NSString*) description { return [NSString stringWithFormat:@"%@ (%@)", self.name, self.jobTitle]; } 

Я получаю следующее:

 ( "Holly T Canine (Pet Dog)", "James Webster (Code Monkey)" ) 

Если по какой-либо причине вы не можете добавить метод описания, вам просто нужно получить доступ к соответствующим частям объекта; что-то вроде следующего:

 NSArray *ar = [customer.addresses allObjects]; for (int i = 0; i<ar.count; i++) { NSLog(@"arr %@ (%@)",ar[i].name, ar[i].address); } 

Я немного поглядел на библиотеку, которую вы используете. Попробуйте следующее:

 for (BUYAddress *address in customer.addresses) { NSLog(@"Address: %@, %@, %@", address.address1, address.address2, address.city); } 

Рассмотрим NSSet ниже,

  NSSet *theNSSet = [NSSet setWithObjects:@"Chennai",@"Mumbai",@"Delhi", nil]; 

Преобразуйте его в NSArray, используя

 NSArray *array = [theNSSet allObjects]; // theNSSet is replaced with your NSSet id 

Затем напечатайте его как

 NSLog(@"%@",array); 

Выход im, получающий

(Ченнай, Дели, Мумбаи)

В твоем случае:

 - (NSMutableSet *)addressesSet { [self willAccessValueForKey:@"addresses"]; NSMutableSet *result = (NSMutableSet *)[self mutableSetValueForKey:@"addresses"]; [self didAccessValueForKey:@"addresses"]; NSLog(@"%@",[result allObjects]); // printing the nsset return result; } 
  • Почему автозаполнение Xcode предлагает файлы .m при импорте?
  • Xcode 5 не печатает подробности исключения
  • Использовать фильтр UIWebViewNavigationTypeLinkClicked
  • MKDirectionsRequest между двумя заданными точками на карте
  • Как отсортировать NSMutableArray объектов даты
  • Парсер NSXMLParser: parseErrorOccurred: не вызывается на iOS 7
  • Что мне не хватает, чтобы получить приложение iOS для iCloud?
  • Передача данных в контроллер табуляции
  • Получить Xcode 5 для предупреждения о новых вызовах API
  • Минимальная и максимальная дата в UIDatePicker
  • SDK Google Maps для iOS и маршрутов
  • Interesting Posts

    Xcode 9 – «Ограничения фиксированной ширины могут вызвать обрезку» и другие предупреждения о локализации

    iOS: почему у вас нет объектов в структурах?

    Что означает «@private» в Objective-C?

    OpenGL ES 2.0 рисует Fullscreen Quad очень медленно

    Как я могу контролировать уровень ошибок сообщений NSLog на iOS?

    Почему self.view.subviews пустой массив в viewDidLoad?

    Swift: Segue (модальный) для UITableViewController, который встроен в контроллер навигации antoher

    Странная анимация при изменении приглашения NavigationItem

    iOS LocationManager не обновляет местоположение (модуль Titanium Appcelerator)

    Как контролировать запрос сканирования со стороны iOS как центральный?

    Дата в миллисекундах и обратно до даты в Swift

    Загрузите UILabel из раскадровки, не можете изменить кадр в cellForRowAtIndexPath

    отображение большого количества gifs в коллекции

    iOS webview оставляет пустое пространство перед содержимым HTML

    Узлы SpriteKit, привязанные к краям сцены / не подпрыгивания

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.