Каковы ловушки и глюки смешивания Objective C и C?

В загрузочной функции вашего AuthServiceProvider вы все еще можете проверить значение grant_type в вашем запросе, чтобы определить другое время жизни.

if($request["grant_type"] === "client_credentials"){
        // If token is a client_credential we define it to one year
        Passport::tokensExpireIn(Carbon::now()->addYear());
    }else{
        // Or we define it to only one hour
        Passport::tokensExpireIn(Carbon::now()->addHour());
    }
6
задан gargantuan 3 April 2009 в 19:02
поделиться

3 ответа

Я поместил его наоборот: Вы могли бы рисковать сверхусложнять что-то, что смехотворно просто :-)

Хорошо, я являюсь немного бойким. Как другие указывают, Objective C является действительно просто минимальным набором расширений языка C. При написании кода Objective C Вы на самом деле пишете C. Можно даже получить доступ к внутренним махинациям поддержки во время выполнения Objective C с помощью некоторых удобных функций C, которые являются частью языка (нет... Я не рекомендую на самом деле СДЕЛАТЬ это, если Вы действительно не знаете то, что Вы делаете).

В единственное время у меня когда-либо были мягко хитрые моменты, когда я хотел передать метод экземпляра Objective C как обратный вызов к функции C. Скажите, например, я пользуюсь чистой-C кросс-платформенной библиотекой, которая имеет функции, которые принимают обратный вызов. Я мог бы вызвать функцию из экземпляра объекта, чтобы обработать некоторые данные и затем хотеть, чтобы это функция C отозвало мой экземпляр когда его сделанный, или как часть получения дополнительного входа и т.д. и т.д. (общая парадигма в C). Это может быть сделано с броским функциональным обертыванием и некоторыми другими творческими методами, которые я видел, и если когда-нибудь необходимо делать это гуглящий "объективный-c метод для c обратного вызова", или что-то как этот даст Вам товары.

Единственный другой небольшой совет состоит в том, чтобы удостовериться, что Ваши объекты соответственно управляют любым вручную mallocпамять редактора, которую они создают для использования функциями C. Вы захотите, чтобы Ваши объективные-c классы убрали ту память на dealloc, если, действительно, это будет закончено.

Кроме этого, сотрите любую ссылку на C и развлекайтесь!

14
ответ дан 8 December 2019 в 05:58
поделиться

Вы не можете 'смешать' C и Objective C: Objective C является надмножеством C.

Теперь, C++ и Objective C, с другой стороны...

7
ответ дан 8 December 2019 в 05:58
поделиться

Objective C является надмножеством C, таким образом, это не должно конфликтовать.

За исключением того, что, как указано здесь чистый C имеет различные конвенции (очевидно, так как нет никакого встроенного механизма) обработать программирование OO. В C объект просто (структура *) с указателями функции.

1
ответ дан 8 December 2019 в 05:58
поделиться
Другие вопросы по тегам:

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