Я новичок в Objective-C, поэтому извините, если это по сути не работает в языке, но похоже, что должно. Что я хочу сделать, это рассчитать толщину объекта книги в дюймах. Вот объекты в заголовочном файле Book
:
NSString *title, *author;
int *numPages;
/**
* The thickness of any given page in the book, in inches (e.g. 20lb stock would be 0.0038)
*/
double *pageThickness;
bool *hasHardCover;
Идея состоит в том, что я вычислю толщину книги, прибавив (произведение толщины страницы на количество страниц) с (толщина обложки книги; четверть дюйма, если она твердая, четырех умножить толщину страницы, если это мягкая обложка). Тем не менее, я получаю несколько ошибок со следующей реализацией:
63 -(int *)calculateWidthInInches
64 {
65 return (((double *)numPages) *
66 pageThickness) +
67 (hasHardCover ? 0.25 :
68 (pageThickness * 4.0));
69 }
Вот ошибки:
/Users/student4/Downloads/LibraryOfBooks/Book.m:66: error: invalid operands to binary * (have 'double *' and 'double *')
/Users/student4/Downloads/LibraryOfBooks/Book.m:68: error: invalid operands to binary * (have 'double *' and 'double')
/Users/student4/Downloads/LibraryOfBooks/Book.m:69: warning: control reaches end of non-void function
Я подозреваю, что последний был вызван невозможностью скомпилировать обратную строку. Что я сделал не так с моим calculateWidthInInches
методом?
Fix:
63 -(double)calculateWidthInInches
64 {
65 return ((*numPages) * *pageThickness) + (*hasHardCover ? 0.25 : (*pageThickness * 4.0));
66 }