Я пытался записать (распечатать) значение объекта CGSize следующим образом:
CGSize sizeOfTab = CGSizeMake(self.frame.size.width/tabCount, 49);
NSLog(@"size of tab is %@",sizeOfTab);
Что-то не так в этом коде; мое приложение дает сбой, когда управление переходит к оператору NSLog.
Спасибо Прасад
iphone
objective-c
ios4
Прасад
источник
источник
Ответы:
Вы можете вызвать следующее, чтобы распечатать значение, которое вам нужно:
NSLog(@"width = %f, height = %f", mySize.width, mySize.height);
источник
Попробуй это
CGSize sizeOfTab = CGSizeMake(self.frame.size.width/tabCount, 49); NSLog(@"size of tab is %@",NSStringFromCGSize(sizeOfTab));
Сбой происходит из-
sizeOfTab
заNSString
неправильного формата.источник
sizeOfTab
это не объект ( подойдет любой объект, а не толькоNSString
).CGSize
это структура.self.frame.size.width/tabCount
Как упоминал ДжоБлоу ( я заметил после ввода и форматирования этого ответа ), есть также функция UIKit
NSStringFromCGSize()
для красивой печати и ее обратная функцияCGSizeFromString()
для созданияCGSize
структуры изNSString
объекта.Apple документирует
string
параметр следующим образом:CGSizeFromString(
string
)
пример
CGSize size = CGSizeFromString(@"{320,568}"); NSLog(@"Pretty printed size: %@", NSStringFromCGSize(size));
Выход
Pretty printed size: {320, 568}
Другие полезные функции ( Справочник CGGeometry )
источник
% @ означает, что вы пытаетесь вставить строку. CGSize не является строкой и не может быть автоматически преобразован в нее. Вот почему ваше приложение вылетает. Вместо этого вам нужно регистрировать отдельные свойства отдельно, например
NSLog(@"width is %f, height is %f.", sizeOfTab.width, sizeOfTab.height);
% f используется, потому что свойства width и height относятся к типу float .
Информацию о преобразованиях других форматов см. В документации: http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Strings/Articles/formatSpecifiers.html.
источник
CGSize
имеет ширину и высоту членов типаCGFloat
. Вы можете распечатать их, используя следующиеNSLog(@"Width = %f, height = %f",sizeOfTab.width, sizeofTab.height);
источник
Здесь self.view - это представление класса UIView. Вы можете распечатать любую рамку с этим журналом.
NSLog(@"self.view.Frame=%@", NSStringFromCGRect(self.view.frame));
источник