Как Вы создаете гибридные проекты XCode для Mac и iPhone?

У вас в основном есть весь необходимый механизм - вам просто нужно его развернуть. Две части, которые вам не хватает, - это сбор букв при перемещении по матрице и обновление текущей позиции с помощью функции обновления:

grelha1 = [
    "PIGATOS",
    "ANRBKFD",
    "TMCAOXA",
    "OOBBYQU",
    "MACOUIV",
    "EEJMIWL"
]

def proxima_pos(pos, dire):
    """ sums position and direction, eg. >>> proxima_pos((1, 2), (1, 0)) >>> (2, 2) """

    return pos[0] + dire[0], pos[1] + dire[1]

def dimensions_grelha(grelha):
    """ gives the dimension of line and column of grelha """

    return len(grelha), len(grelha[0])

def gera_cadeia_fila(grelha, pos_start, dire):

    letters = ""

    dimension_max_line, dimension_max_column = dimensions_grelha(grelha)

    position_line, position_column = pos_start

    while position_line < dimension_max_line and position_column < dimension_max_column:

        letters += grelha1[position_line][position_column]

        position_line, position_column = proxima_pos((position_line, position_column), dire)

    return letters

print(gera_cadeia_fila(grelha1, (1, 0), (0, 1)))  # ’ANRBKFD’
print(gera_cadeia_fila(grelha1, (0, 5), (1, 0)))  # ’OFXQIW’
print(gera_cadeia_fila(grelha1, (2, 0), (1, 1)))  # ’TOCM’
12
задан Binarian 4 June 2014 в 10:37
поделиться

4 ответа

Чтобы вы знали:

У меня был один проект с разными целями для разных платформ. Но я не включил фреймворк, от которого завис, в сами цели, а добавил их в настройки сборки Other Linker Flags :

-framework Foundation -framework Security

Вы можете проверить это в своем проекте ] github .

5
ответ дан 2 December 2019 в 22:52
поделиться

Вероятно, самое легкое (с точки зрения того, что необходимо сделать) способом сделать его являются два проекта (который можно обернуть как подпроекты фиктивного проекта зонтика, если Вам нравится), которые используют те же наборы источников — одно предназначение Mac OS X, другая iPhone OS.

С другой стороны, разве Вы не можете создать две отдельных цели в рамках того же проекта и изменить “Основу SDK” от вкладки “Build” окна “Get Info” для каждого? У меня нет XCode передо мной для проверки, но я думаю, что он позволит Вам сделать это.

(Конечно, с любым подходом, можно добавить третью цель: статическая библиотека для средства моделирования, которое будет полезно при тестировании!)

3
ответ дан 2 December 2019 в 22:52
поделиться

Разве Вы не можете использовать идиому PIMPL? И/или общий заголовок для обоих имеет, но использует различный файл реализации на основе целевой архитектуры или SDK?

-3
ответ дан 2 December 2019 в 22:52
поделиться

На самом деле все не так уж и плохо. Просто создайте вторую цель соответствующего типа и затем измените параметр сборки «Базовый SDK». Затем обязательно добавьте все необходимые файлы. Если вы хотите создать и то и другое одновременно, создайте совокупную цель. Практический пример см. В моем проекте SSPromise .

3
ответ дан 2 December 2019 в 22:52
поделиться