2010-03-16 9 views
0

Я пытаюсь взять вывод arc4sin и поместить его в метку.Как получить вывод arc4Sin() в метку/NSString

(EDIT: Вы можете игнорировать это и просто разместить пример кода, если это слишком неуместны.)

Я пробовал:

// Implement viewDidLoad to do additional setup after loading the view, typically from a nib. 
- (void)viewDidLoad { 
    [super viewDidLoad]; 
    NSString *number = [[NSString alloc] stringWithFormat: @"%@", arc4random() % 9]; 
    label.text = number; 
} 

Я создал IBOutlet «ярлык» и подключил его. Что здесь не так?

+0

Либо это не настоящий код, который вы пробовали, либо игнорируете некоторые очевидные ошибки сборки, потому что '[[NSString alloc] stringWithFormat:' ерунда, даже не читая. Это должно быть либо '[NSString stringWithFormat:' или '[[NSString alloc] initWithFormat:' (и если это последний, его нужно освободить после этого). – Chuck

+0

ах ок. Сейчас я бездельник, который спит. хе-хе. «ерунда без чтения». Правда что. – Moshe

+0

@Carl - второе предложение кода вызывает ошибку. Первый работает отлично. – Moshe

ответ

1

В строках формата какао, %@ обозначает Objective-C объект, который Интс, поплавки, лонги и шорты все нет. Они всего лишь C-типы данных и используют свои собственные форматы, точно такие же, как в printf().

Согласно man-странице, arc4random() определяется как u_int32_t arc4random(void);, таким образом, вы должны использовать спецификатор формата %u (целое без знака).

Редактировать: Спасибо Till за указание на это: вы хотите -initWithFormat:, если вы вызываете -alloc, -stringWithFormat: - метод класса NSString.

+0

Нет, все еще падает ... Возможно, что-то не так с моим кодом. Есть идеи? – Moshe

+0

Работа UIAlertView, что-то с моей этикеткой или выходом ... Спасибо! – Moshe

+1

Вы отправляете 'stringWithFormat:' в выделенный объект, хотя это метод класса. –

 Смежные вопросы

  • Нет связанных вопросов^_^