Разработка iPhone: Какие структуры данных доступны?

Полагаю, вам нужен инструмент svcutil.exe:

https://docs.microsoft.com/de-de/dotnet/framework/wcf/servicemodel-metadata-utility. -tool-svcutil-exe

ОБНОВЛЕНИЕ:

Я сделал еще несколько копаний. Используемый пользовательский инструмент определен в сборке Microsoft.VisualStudio.Editors.WCF, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a. Похоже, это не используется в инструменте svcutil.exe. Сборка находится в gac, но я не знаю, как это можно выполнить с помощью командной строки. Лучше всего, вероятно, получить wsdl для вашей справочной службы и использовать вместо этого инструмент svcutil.

На самом деле, я только что попытался сгенерировать код, используя только файл Reference.svcmap, и в результате получился пустой файл Reference.cs, содержащий только «автоматически сгенерированный» комментарий. Таким образом, одного файла Reference.svcmap недостаточно для генерации прокси-кода клиента. Вам нужно больше информации, чем это. Когда вы запускаете опцию «обновить ссылку на службу» в Visual Studio, она обычно выбирает все метаданные из конечной точки обмена метаданными и восстанавливает ваш код. Это также может быть достигнуто с помощью svcutil.exe путем передачи URL-адреса службы.

8
задан Quinn Taylor 15 June 2009 в 19:28
поделиться

3 ответа

Вы можете использовать любую структуру данных , реализованную на C или C ++ с iPhone SDK.

Например, я часто использую стандартную библиотеку .

Кроме того, вы также можете использовать сложные структуры данных Какао, такие как:

  1. NSArray
  2. NSDictionary (hash)
  3. NSSet (set )

Вы можете иметь сопроводительный документ на них здесь .

18
ответ дан 5 December 2019 в 06:24
поделиться

Язык Objective-C не предоставляет никаких внутренних структур данных, таких как связанные списки и т. Д. Однако, поскольку он основан на кодовой базе C / C ++, все, что может быть реализовано в C или C ++ может быть выполнен непосредственно в Objective-C, включая связанные списки и другие структуры данных.

-4
ответ дан 5 December 2019 в 06:24
поделиться

Какао (фреймворк, доступный как на Mac, так и на iOS) реализует несколько общих типов коллекций , включая NSArray , NSDictionary и NSSet , а также их изменяемые варианты. (Leopard также представил NSPointerArray , NSHashMap и NSHashTable , массив / словарь / набор с дополнительными параметрами (например, с использованием слабых ссылок), которые делают их довольно удобными). для использования в среде со сборкой мусора. Однако эти классы в настоящее время недоступны на iPhone и не имеют смысла на данный момент, поскольку iOS не поддерживает сборку мусора.) Эти классы очень быстрые и подходят для общих -целевое использование в любом приложении Какао.

Помимо этих предоставленных структур, у вас есть несколько вариантов: (1) создавать более сложные структуры, используя их в качестве строительных блоков, (2) использовать существующий сторонний код или (3) создавать собственные структуры данных с нуля.

] Один из вариантов - CHDataStructures.framework , платформа Objective-C с открытым исходным кодом, которую я поддерживаю. Он реализует несколько других общих структур данных, таких как стек / очередь / двухсторонняя очередь, связанные списки, отсортированные наборы и многое другое. Эти структуры принимают NSCoding и NSCopying (плюс NSFastEnumeration на 10.5+), поэтому они без проблем работают с собственным кодом Objective-C. Проект также позволяет создавать статическую библиотеку для использования на iPhone. Поскольку этот фреймворк имеет открытый исходный код, при необходимости вы даже можете включить только соответствующий код непосредственно в свой проект.

В то время как вы можете использовать структуры C ++ и STL, я обнаружил, что смешивание Objective-C и C ++, как правило, намного более запутанно и приводит к неприятным ошибкам, особенно для новичков. Это не критика C ++, а просто принцип «когда в Риме». При использовании C ++, конечно, предпочтительным подходом является STL. Если вы уже микшируете C ++, вероятно, вам это достаточно удобно, и STL может быть хорошим выбором; даже в этом случае, я считаю, что использование собственных коллекций Какао дает более очевидный, читаемый код.

если вы уже микшируете на C ++, вы, вероятно, достаточно освоились с ним, и STL может быть хорошим выбором; даже в этом случае, я считаю, что использование собственных коллекций Какао дает более очевидный, читаемый код.

если вы уже микшируете на C ++, вы, вероятно, достаточно освоились с ним, и STL может быть хорошим выбором; даже в этом случае, я считаю, что использование собственных коллекций Какао дает более очевидный, читаемый код.

12
ответ дан 5 December 2019 в 06:24
поделиться