Eu pareço ter algum excesso de zelo liberando acontecendo no meu app obj-C - recebendo mensagem de erro - myobj release: mensagem enviada para a instância desalocada 0x5633b0 Eu sei que a classe da instância do objeto causando o problema, mas esta classe é usada em todo para criar muitos casos. Meu pensamento é que eu poderia colocar alguns log no método init da classe para registrar o que 0x5633b0 corresponde ao que deve me ajudar a rastrear onde a instância está sendo criada. O que exatamente é o 0x5633b0 e existe alguma maneira que eu possa ter acesso a esse valor no código para registrá-lo O que funcionou melhor para mim quando me deparei com problemas semelhantes recentemente foi o seguinte: Em Project-Edit Active Executable - guia Argumentos - Seção de variáveis de ambiente que adicionei e configurei para YES as seguintes variáveis: NSAutoreleaseFreedObjectCheckEnabled. NSZombieEnabled e NSDebugEnabled. No menu Executar, selecionei o Enable Guard Malloc. Com essas configurações, o depurador forneceu mais dicas sobre o que está errado no meu código. (Eu encontrei estas dicas aqui) respondeu Mar 4 10 at 9:11 Ativar guarda Malloc doesn39t trabalho quando a depuração em um dispositivo, pelo menos eu can39t e este post confirmá-lo: discussions. apple/thread/1572993start0amptstart0 ndash JeroenEijkhof Ago 21 11 at 5 : 23 JeroenEijkhof está certo. Guarda malloc don39t trabalho no dispositivo. E eles podem ser habilitados na aba 39diagnostice39, sem necessidade de definir em env var. Mas NSAutoreleaseFreedObjectCheckEnabled pode precisar definir como env var. ndash karim Oct 3 14 at 8:00 0x5633b0 é provavelmente o endereço do objeto desalocado (o valor de myobj). Você pode usar NSLog ou printf com p para imprimi-lo. Você também pode usar o profiler de instrumentos para localizar o objeto desalocado. 1. Inicie o criador de perfil: 2. Selecione os zumbis e inicie o criador de perfil. 3. Clique no simulador até atingir o caso de erro desalocado. Você não está gerenciando sua memória adequadamente - está chamando release / autorelease em algum objeto mais vezes do que está chamando de reter. Certifique-se de seguir todas as regras estabelecidas no Guia de programação de gerenciamento de memória do Cocoa. 0x5633b0 é apenas o endereço do local da memória em que o objeto está armazenado. Uma coisa que você pode tentar fazer é adicionar algum código ao método init: Se você tiver outros métodos init (por exemplo, initWithCoder., Que é chamado para objetos instanciados a partir de um XIB), certifique-se de colocar esse trecho nesses métodos também . Coloque um ponto de interrupção na linha NSLog e veja quando ele é atingido. Observe que ele pode ser atingido várias vezes, se um objeto é alocado nesse endereço, desalocado e, em seguida, outro objeto passa a ser realocado no mesmo endereço. O último hit antes do acidente é o que você quer. Answer Mar 2 09 at 2:24 Como você sabe o endereço do símbolo de antemão Isn39t é diferente cada vez que você executar o código. Pelo menos, notei isso. Usar algo como o símbolo 0xinfo no console do debugger deu-me melhores resultados que o seu probosal. ndash leviatã 18 jan 11 às 10:15 Sua Resposta 2016 Stack câmbio, IncLearn iPhone Application ltkeygtNSAppTransportSecuritylt / keygt ltdictgt ltkeygtNSExceptionDomainslt / keygt ltdictgt ltkeygttest. testdomainlt / keygt ltdictgt ltkeygtNSIncludesSubdomainslt / keygt lttrue / gt ltkeygtNSTemporaryExceptionRequiresForwardSecrecylt / keygt ltfalse / gt lt / dictgt NSString strURL google NSURL URL NSURL URLWithString: NSString stringWithFormat :, strUrl stringByAddingPercentEncodingWithAllowedCharacters: pedido NSCharacterSet URLQueryAllowedCharacterSet NSURLRequest NSURLRequest requestWithURL: sessão URL NSURLSession NSURLSession sharedSession NSURLSessionDataTask sessão tarefa dataTaskWithRequest: pedido completionHandler: (dados NSData, resposta NSURLResponse, NSError erro) dict NSJSONSerialization JSONObjectWithData: dados keyArray dict objectForKey : vídeos NSLog (resposta:, receitas) tblvw reload Importação de dados ltFBSDKLoginKit / FBSDKLoginKit. hgt import ltFBSDKCoreKit / FBSDKCoreKit. hgt - (BOOL) applicatio n: (UIApplication) aplicação openURL: (NSURL) url sourceApplication: (NSString) sourceAplicação anotação: (id) anotação return FBSDKApplicationDelegate sharedInstance aplicação: aplicação openURL: url sourceApplication: sourceApplication anotação: annotation - (void) applicationDidBecomeActive: (UIApplication) aplicação FBSDKAppEvents Aplicação activateApp - (BOOL): aplicação (UIApplication) didFinishLaunchingWithOptions: (NSDictionary) launchOptions return FBSDKApplicationDelegate sharedInstance aplicação: aplicação didFinishLaunchingWithOptions: launchOptions - (IBAction) facebookLogin: (id) remetente FBSDKLoginManager login FBSDKLoginManager alocação init if (FBSDKAccessToken currentAccessToken) NSLog (Token é acessível. , FBSDKAccessToken currentAccessTokentokenString) self fetchUserInfo mais login logInWithReadPermissions: email deViewController: auto handler: (FBSDKLoginManagerLoginResult resultado, erro NSError) if (error) NSLog (Erro no processo de login) else if (result. isCancelled) NSLog (Usuário cancelado login) else NSLog (Login Sucesso) if (result. grantedPermissions containsObject: email) NSLog (resultado é:, resultado) self fetchUserInfo mais SVProgressHUD showErrorWithStatus: Erro de permissão de email do Facebook - (void) fetchUserInfo if (FBSDKAccessToken currentAccessToken) NSLog (Token está disponível., FBSDKGraphRequest aloca initWithGraphPath: (FBSDKGraphRequestConnection conexão, resultado id, erro NSError) if (erro) NSLog (resultados:, resultado) NSString e-mail resultado objectForKey: e-mail NSString userId resultado objectForKey: idLeft ver sobreposições com barra de status em ios7 beta 6 435 Eu fiz algo semelhante a Dschee embora infelizmente não consegui fazê-lo funcionar, pois o conteúdo ainda rolava sob a barra de status. lly, depois de um pouco de mexer, eu comecei a trabalhar em vez disso, movendo minha visão de tabela para baixo 20 pixels, o que foi bom, embora o problema é agora a barra de status parece um pouco estranho, pois é dividido entre o novo combinado 64px navbar. Minha solução foi, quando o aplicativo está mostrando o controlador central, mostrar a barra de navegação 64px completa (apenas o comportamento padrão). Mas quando a barra lateral é mostrada (e usando o viewDeckController: didOpenViewSide: animated: callback), defina o fundo da barra de status para uma cor mais escura, então parece que há uma barra de status de 20px e uma navbar de 44px (como abaixo). Eu fiz isso com um pouco de hackery, criando uma visão alta de 20px, e adicionando-a como uma sub-view do UIApplication sharedApplication. window na posição (0, 0), que fica abaixo do texto da barra de status. Você notará no novo aplicativo do Facebook, se você abrir o menu do lado direito, ele fará o mesmo, embora vá um passo além, se você arrastar lentamente o menu lateral, a opacidade das barras de status mudará lentamente até ficar totalmente preto. Não tenho certeza de como isso seria implementado, talvez um retorno de chamada como um scrollViewDidScroll: exceto por um viewDeckDidScroll :, ou talvez ele deva ser apenas embutido na biblioteca Oh, o que você sabe, logo depois que eu postei minha última mensagem eu encontrei o retorno de chamada, que é viewDeckController: didChangeOffset: orientação: panning. então minha barra lateral agora funciona como Id like it to :) jklp Você pode postar o código sobre como você adicionou a subvisualização em (0,0) Eu não consigo obtê-lo para exibir. Oi, eu só usei o seguinte código que parecia funcionar bem: embora quando eu tentei mais cedo esta manhã em outro projeto (que estava usando storyboards), notei que o UIView criado acima seria exibido sob a barra de navegação (isso estava usando revealapp / para inspecionar a hierarquia da visão). Como eu estava no prazo, não tive a chance de investigar mais, embora sua milhagem possa variar. Você não pode executar essa ação neste momento. Você entrou com outra guia ou janela. Recarregue para atualizar sua sessão. Você saiu de outra guia ou janela. Recarregue para atualizar sua sessão.
No comments:
Post a Comment