Проблема со структурой против NSString - PullRequest
0 голосов
/ 10 марта 2011

Еще один (надеюсь, простой) вопрос для начинающих: я пытался измерить размер UITextView, но получил большую ошибку компилятора для следующего кода:

NSString *temp2String;
temp2String = [NSString stringWithFormat:@"%@",[textView text]];

CGSize strSize = [temp2String sizeWithFont:@"Courier" constrainedToSize:CGSizeMake(200, 10000)
                             lineBreakMode:UILineBreakModeWordWrap];

NSString *temp2 = [[NSString alloc] initWithFormat:@"String width: %f", strSize.width];
textViewSizeW.text = temp2;
[temp2 release];

Ошибка: несовместимые типы Objective C 'struct NSString *', ожидаемый 'struct UIFont *' при передаче аргумента 1 sizeWithFont: constrainedToSize: lineBreakMode: 'из отдельного типа Objective-C'.

Боюсь, но для меня это звучит как гуглдигук. Я испортил строки и структуры? Я старался быть очень осторожным, чтобы не смешивать их на этот раз (раньше я ошибся ... см. Мой предыдущий пост).

Любая помощь будет принята с благодарностью!

Ответы [ 3 ]

2 голосов
/ 10 марта 2011

В простом английском языке ошибка в том, что «аргумент 1 метода X - это объект NSString, ожидаемый объект UIFont».

Итак, правильный код:

UIFont *strFont = [UIFont fontWithName:@"Courier" size:12];
CGSize strSize = [temp2String sizeWithFont:strFont constrainedToSize:CGSizeMake(200, 10000)
                         lineBreakMode:UILineBreakModeWordWrap];
0 голосов
/ 10 марта 2011

goobledigook? Довольно ясно, что пошло не так.

вы передали struct NSString (@ "Courier"), но метод ожидал struct UIFont.

Полагаю, это все еще проблема с просмотром текста. так передайте шрифт textview.

CGSize strSize = [temp2String sizeWithFont:textView.font constrainedToSize:CGSizeMake(200, 10000)
                         lineBreakMode:UILineBreakModeWordWrap];
0 голосов
/ 10 марта 2011

Вы вызываете sizeWithFont: метод с параметром Тип NSString"Курьер". Вам нужно создать экземпляр объекта UIFont, используя [UIFont fontWithName:@"CourierBlah" size:12.0 и передать объект UIFont в качестве параметра.

...