Копия и Вставка на iPhone с несколькими представлениями данных

Ключевое слово else может сбивать с толку, и, как отмечают многие, что-то вроде nobreak, notbreak более уместно.

Чтобы логически понять for ... else ..., сравните его с try...except...else, а не if...else..., большинство программистов на python знакомы со следующим кодом:

try:
    do_something()
except:
    print("Error happened.") # The try block threw an exception
else:
    print("Everything is find.") # The try block does things just find.

Аналогично, подумайте о break ] как особый вид Exception:

for x in iterable:
    do_something(x)
except break:
    pass # Implied by Python's loop semantics
else:
    print('no break encountered')  # No break statement was encountered

Разница в python подразумевает except break и вы не можете выписать его, поэтому он становится:

for x in iterable:
    do_something(x)
else:
    print('no break encountered')  # No break statement was encountered

Да, я знаю, что это сравнение может быть трудным и утомительным, но оно проясняет путаницу.

9
задан Daryl Spitzer 27 July 2009 в 02:01
поделиться

1 ответ

Чтобы ответить на мой вопрос:

Вы должны использовать свойство items, чтобы поместить несколько представлений на монтажный стол. Для этого вы создаете словарь с каждым представлением в качестве значения и типом представления в качестве ключа. Добавьте этот словарь в массив, где каждый элемент в массиве представляет собой элемент (UIPasteboard поддерживает добавление нескольких элементов на монтажный стол, а также добавление нескольких представлений к каждому элементу).

Пример кода для одного элемента с двумя представлениями:

    UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
NSMutableDictionary *item = [NSMutableDictionary dictionaryWithCapacity:2];
[item setValue:[NSKeyedArchiver archivedDataWithRootObject:pasteboardDictionary] forKey:MNTNodesPasteboardType];
[item setValue:pasteboardString forKey:(NSString *)kUTTypeUTF8PlainText];
pasteboard.items = [NSArray arrayWithObject:item];

Не забудьте установить связь с платформой MobileCoreServices для разрешения константы UTI.

16
ответ дан 4 December 2019 в 13:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: