Compilador online

Compilador Objective-C online

Escreva seu código em Objective-C (Clang 21) abaixo e rode de graça, com entrada, num sandbox nos nossos servidores. Sem cadastro e sem anúncios.

Pela equipe do OnlineCompiler.io. Atualizado em .

Also in EnglishTambién en español

#import <Foundation/Foundation.h>

int main(void) {
    @autoreleasepool {
        char nome[64];
        int n;
        // Lê o nome e um número da aba Entrada
        scanf("%63s %d", nome, &n);

        NSString *saudacao = [NSString stringWithFormat:@"Olá, %@!", @(nome)];
        printf("%s\n", saudacao.UTF8String);
        for (int i = 1; i <= n; i++) {
            printf("%d ao quadrado é %d\n", i, i * i);
        }
    }
    return 0;
}
Compartilhar gera um link, sem precisar de conta. Salvar guarda o código na sua conta.

Quer conferir uma solução contra várias entradas? O compilador Objective-C com casos de teste roda todas de uma vez e marca cada uma como aprovada ou reprovada.

Como dar entrada (stdin)

Antes de apertar Executar, digite na aba Entrada tudo o que o programa vai ler. Ele recebe esse texto pela entrada padrão (stdin). Em Objective-C, fica assim:

char linha[256];
fgets(linha, sizeof linha, stdin);   // uma linha inteira, com o \n do fim
NSString *texto = @(linha);          // a mesma linha como NSString
scanf("%d %d", &a, &b);              // dois números (int a, b;)

A entrada inteira é enviada quando você aperta Executar, então o programa não pode pedir mais nada enquanto roda. Coloque cada valor numa linha, ou separe por espaços, conforme o programa lê.

Versão e limites

VersãoObjective-C Clang 21
Compilado comclang $(gnustep-config --objc-flags) -fobjc-weak code.m -o code.out $(gnustep-config --base-libs)
Executado com./code.out
Limites30 segundos, 512 MB de memória, 2 CPUs, 64 KB de saída por fluxo, sem rede
Execução típica1,81 s, e 2,27 s para a mais lenta em cada 20 (como medimos, em inglês)

Bom saber

  • Compila com Clang 21 usando o Foundation e o runtime moderno do GNUstep, então @autoreleasepool, literais como @[] e @{}, acesso por índice (subscripting), propriedades sintetizadas e blocks funcionam.
  • O ARC está desligado, então código que chama retain e release também compila, e __weak funciona de qualquer forma. NSLog escreve na stderr com data e hora, então imprima a saída com printf.
  • Só o Foundation: não há AppKit nem UIKit. Uma exceção não capturada mostra o nome e o motivo na stderr e sai com o código 1.

Rodar Objective-C a partir do seu app

Para rodar Objective-C no seu próprio app, envie o código e a entrada para o endpoint síncrono com uma chave de API, e a saída volta na resposta. É grátis até 100.000 execuções por mês. Documentação da API (em inglês).

O editor acima é um widget que você pode colocar no seu site, blog ou curso. Com o atributo data-locale="pt", os botões aparecem em português. Como incorporar o editor (em inglês).

Outras páginas

Perguntas frequentes

O compilador Objective-C online é grátis?

Sim. Rodar Objective-C nesta página não exige conta e não tem anúncios. Para rodar Objective-C no seu próprio app ou site, a API e o widget são grátis até 100.000 execuções por mês, uso comercial incluído.

Meu programa em Objective-C pode ler entrada?

Sim. Digite a entrada na aba Entrada antes de executar, e o programa a lê pela entrada padrão (stdin). A entrada inteira é enviada quando você aperta Executar, então o programa não pode pedir mais nada enquanto roda.

Posso usar bibliotecas em Objective-C?

O GNUstep Base, uma implementação do Foundation da Apple (NSString, NSArray, NSDictionary e o resto), e a biblioteca padrão do C. Não há CocoaPods nem Swift Package Manager, e os programas não têm acesso à rede.

Quanto tempo um programa pode rodar?

Até 30 segundos, com 512 MB de memória e 2 CPUs. Um programa que ainda estiver rodando aos 30 segundos é interrompido com o código de saída 124, e a saída acima de 64 KB por fluxo é cortada.

Onde meu código roda?

Nos nossos servidores, num sandbox gVisor novo e sem acesso à rede, que é apagado quando a execução termina. Cada execução fica guardada no histórico com a saída; a página de segurança (em inglês) explica o que é armazenado.

Existe uma API para Objective-C?

Sim. Envie o código, o id do compilador clang-objc-21 e a entrada para https://api.onlinecompiler.io/api/run-code-sync/ com uma chave de API, e a resposta traz a saída, os erros, o código de saída, o tempo e a memória. É grátis até 100.000 execuções por mês, e a mesma chave serve para as outras 45 linguagens. A documentação está em inglês.