2015-07-23 1 views
1

Я не могу получить Xcode 7 (beta), чтобы принять меня, используя аннотацию типа Swift 2 @convention(c)? Может ли кто-нибудь указать некоторые конкретные синтаксически правильные примеры использования @convention(c)?Каковы некоторые конкретные примеры использования аннотации типа Swift 2 @convention (c)?

ответ

1
let cFunction : @convention(c) (Int, Int) -> Int = { $0 + $1 } 

Я также могу рекомендовать This awesome website which answers you (almost any) question

EDIT: К сожалению, для этого, есть на самом деле просто three Questions, которые включают в себя Свифта @convention(c)

+0

Очень смешно :) Я слышал об этой «google» вещи и фактически отправился туда. Покажите мне сайт с первой страницы или двух, на самом деле у меня есть то, что я просил, - пример этого использования. –

+1

Kametrixom - Можете ли вы использовать его (@convention (c)), когда вы определяете функцию с помощью ключевого слова 'func'? –

+0

@ChrisMarkle Я не думаю, что вы можете, но это не имеет большого значения, поскольку замыкание является функцией и ведет себя как один во всех отношениях. Извините за шутки;) – Kametrixom

1

Вам не нужно @convention(c), если вы не пишете гибридное приложение, где Objective-C необходимо вызвать в ваш код Swift.

Вот два Swift объявления методов:

func blockTaker(f:()->()) {} 
func functionTaker(f:@convention(c)() ->()) {} 

Objective-C видит сначала принимает блок Objective-C, а второй как взятие функции указатель на C.

В этом отличии @convention(c) рисует.

+0

Что говорит об использовании '@convention (c)' в ответе @ Kametrixom? –

+0

Я не знаю, что вы имеете в виду. Я ответил на вопрос. Я сказал, что сказал. Вы берете его оттуда. – matt

+0

Ok @matt, но вы отмечаете, что различие, которое '@convention (c)' рисует, состоит в том, что оно определяет функцию как «как взятие C-указателя на функцию», но я не думаю, что это то, что использует его в пусть утверждение, как в ответе @Kametrixom, говорит. –

Смежные вопросы