Tenho feito um aplicativo e tudo está funcionando muito bem. Mas hoje fiz uma nova classe como de costume e por algum motivo nesta classe não consigo acessar a variável Pública / Global de outras classes. Todas as outras classes podem, mas agora, sempre que tento fazer uma nova classe, não consigo. Como isso seria consertado?
Estou usando Swift e Xcode 6.
Classe operária:
import UIKit
import Foundation
import Parse
import CoreData
var signedIn = true
class ViewController: UIViewController {
Nova Classe:
import UIKit
class NewClass: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
signedIn = false
}
Mas em signedIn = false
Recebo o erro:
uso do identificador não resolvido "assinadoIn"
}
no final de seuviewDidLoad()
Respostas:
Um possível problema é que sua nova classe tem um alvo diferente ou alvos diferentes do outro.
Por exemplo, ele pode ter um alvo de teste enquanto o outro não. Para este caso específico, você deve incluir todas as suas classes no destino de teste ou nenhuma delas.
fonte
'Uso de identificador não resolvido' no Swift também pode acontecer quando você se esquece de importar uma biblioteca. Por exemplo, tenho o erro:
Em que eu esqueci o
UIKit
fonte
Uma vez que tive esse problema depois de renomear um arquivo. Renomeei o arquivo de dentro do Xcode, mas depois o Xcode não conseguiu encontrar a função no arquivo. Mesmo uma reconstrução limpa não corrigiu o problema, mas fechar e reabrir o projeto fez com que a construção funcionasse.
fonte
Às vezes, o compilador fica confuso sobre a sintaxe da sua classe. Isso acontece muito se você colar o código-fonte de outro lugar.
Tente reduzir o arquivo de origem "não resolvido" ao mínimo, limpando e criando. Uma vez que seja construído com sucesso, adicione toda a complexidade de volta à sua classe.
Isso fez com que tudo desaparecesse para mim quando reiniciar o Xcode não funcionasse.
fonte
Outro lugar em que vi esse erro é quando seu projeto tem vários destinos E vários cabeçalhos de ponte . Se for uma classe compartilhada, certifique-se de adicionar o recurso a todos os cabeçalhos de ponte.
Uma boa dica é olhar no painel esquerdo do Issue Navigator; o objeto raiz mostrará o alvo que está emitindo a reclamação.
fonte
Para mim, esse erro aconteceu porque eu estava tentando chamar uma função aninhada . Única coisa que eu tinha que fazer para tê-lo fixo era trazer a função fora de um âmbito onde era visível.
fonte
No meu caso, eu tinha um arquivo Object-C que também estava na mesma associação de destino. Consertei adicionando
#import "YourObjectCFileHeader.h"
arquivo internoBridging-Header.h
fonte
Porque você não declarou isso. Se você quiser usar uma variável de outra classe, você deve usar
Você tem que colocar este código no final do código NewClass
fonte
Sua
NewClass
herda deUIViewController
. Você declarousignedIn
emViewController
. Se você quiserNewClass
identificar essa variável, ela terá que ser declarada em uma classe da qual vocêNewClass
herda.fonte
Recebi este erro para Mantle Framework em meu projeto Objective-Swift. O que eu tentei é,
Alterne entre membros privados, primeiro crie o projeto e acabe com erros. Em seguida, construa o projeto com Public Membership para todos os frameworks surgidos para o arquivo Mantle.h , você deve obter sucesso.
É apenas um bug de construção com estrutura múltipla no projeto Objective-C Swift.
fonte
Se isso se refere a uma classe que você criou, certifique-se de que a classe não esteja aninhada.
Fe
A.swift
chamar
var b = ARelated()
fornecerá 'Uso de identificador não resolvido: ARelated'.Você também pode:
1) separe as classes se desejar no mesmo arquivo:
A.swift
2) Mantenha sua mesma estrutura e use a classe envolvente para chegar à subclasse:
var b = A.ARelated
fonte
Eu cometi um erro estúpido. Esqueci de mencionar a classe como pública ou aberta ao atualizar o código no espaço de trabalho do cocoapod.
Verifique se o acessório está trabalhando em uma área de trabalho separada.
fonte
Você se esqueceu de declarar a variável. Basta colocar
var
na frente designedIn = false
fonte
viewDidLoad
.Meu problema era chamar meu programa com o mesmo nome de um de seus cocoapods. Isso causou um conflito. Solução: Crie um nome diferente para o programa.
fonte
Isso não é diretamente para o seu exemplo de código, mas em geral sobre o erro. Estou escrevendo aqui, porque o Google direciona esse erro para esta questão, então pode ser útil para os outros desenvolvedores.
Outro caso de uso em que você pode receber esse erro é quando está adicionando um seletor a um método em outra classe, por exemplo:
E então em outra aula:
Se na última linha você simplesmente ligasse em
#selector(cancelActionHandler)
vez de#selector(MockTextFieldTarget.cancelActionHandler)
, obteriaerro.
fonte