Eu estava tentando registrar (imprimir) o valor do objeto CGSize assim:
CGSize sizeOfTab = CGSizeMake(self.frame.size.width/tabCount, 49);
NSLog(@"size of tab is %@",sizeOfTab);
Há algo de errado neste código; meu aplicativo está travando enquanto o controle chega à instrução NSLog.
Obrigado Prasad
iphone
objective-c
ios4
Prasad
fonte
fonte
Respostas:
Você pode chamar o seguinte para imprimir o valor que procura:
fonte
Tente isto
A falha ocorre porque
sizeOfTab
não está emNSString
formato.fonte
sizeOfTab
não é um objeto (qualquer objeto funcionaria, não apenas umNSString
).CGSize
é uma estrutura.self.frame.size.width/tabCount
Como JoeBlow mencionou ( notei depois de digitar e formatar esta resposta ), há também a função UIKit,,
NSStringFromCGSize()
para impressão bonita, e seu inverso,,CGSizeFromString()
para criar umaCGSize
estrutura de umNSString
objeto.A Apple documenta o
string
parâmetro da seguinte forma:CGSizeFromString(
string
)
Exemplo
Resultado
Pretty printed size: {320, 568}
Outras funções úteis ( referência CGGeometry )
fonte
% @ significa que você está tentando inserir uma string. CGSize não é uma string e não pode ser convertido automaticamente em uma. É por isso que seu aplicativo trava. Em vez disso, você precisa registrar propriedades individuais separadamente, como
% f é usado porque as propriedades de largura e altura são do tipo flutuante .
Para outras conversões de formato, consulte os documentos: http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Strings/Articles/formatSpecifiers.html
fonte
CGSize
tem a largura e altura dos memebers que são do tipoCGFloat
. Você pode imprimi-los usando o seguintefonte
Aqui self.view é a visão da classe UIView. Você pode imprimir qualquer quadro com este log.
fonte