Форум программистов, компьютерный форум CyberForum.ru

Не могу понять, где ошибка? - Objective-C

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
dvijok
0 / 0 / 0
Регистрация: 10.07.2012
Сообщений: 61
12.07.2012, 00:18     Не могу понять, где ошибка? #1
Всеем привет!
Я продвинулся в изучении Objective-C, дошел до запуска программы в XCode, но столкнулся с непредвиденной проблемой - XCode показывает, что в коде есть ошибка.
Вот сам код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
 
float circleArea(float theRadius); // [44.4]
float rectangleArea(float width, float height); // [44.5]
int main (int argc, const char * argv[]) // [44.7]
{
    int pictureWidth;
    float pictureHeight, pictureSurfaceArea,
    circleRadius, circleSurfaceArea;
    pictureWidth = 8;
    pictureHeight = 4.5;
    circleRadius = 5.0;
    pictureSurfaceArea = pictureWidth * pictureHeight;
    circleSurfaceArea = circleArea(circleRadius);
    NSLog(@"Площадь картинки: %f. Площадь окружности: %10.2f.",
          pictureSurfaceArea, circleSurfaceArea);
    return 0;
}
float circleArea(float theRadius) // [44.24]
{
    float theArea;
    theArea = 3.14159 * theRadius * theRadius;
    return theArea;
}
float rectangleArea(float width, float height) // [44.31]
{
    return width *height;
}
Ошибка показывается здесь:
Не могу понять, где ошибка?

Ребят, прошу помощи. Без этого не смогу дальше изучать Objective-C
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.07.2012, 00:18     Не могу понять, где ошибка?
Посмотрите здесь:

Objective-C Подкскажите где найти АПИ
Где хранить массивы? Objective-C
Objective-C Не могу понять терминологию
Objective-C Где взять ShareKit
Objective-C Где didMoveToSuperview в UITableViewController?

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
neske
1426 / 793 / 56
Регистрация: 26.03.2010
Сообщений: 2,734
12.07.2012, 00:21     Не могу понять, где ошибка? #2
разделом ты ошибся
dvijok
0 / 0 / 0
Регистрация: 10.07.2012
Сообщений: 61
12.07.2012, 01:07  [ТС]     Не могу понять, где ошибка? #3
Цитата Сообщение от neske Посмотреть сообщение
разделом ты ошибся
"С++ для начинающих", что не так?
babazoya
 Аватар для babazoya
7 / 7 / 3
Регистрация: 28.12.2010
Сообщений: 39
12.07.2012, 01:22     Не могу понять, где ошибка? #4
http://www.cyberforum.ru/objective-c/

Тебе сюда
if{StrikeF}
0 / 0 / 0
Регистрация: 09.06.2012
Сообщений: 3
12.07.2012, 01:38     Не могу понять, где ошибка? #5
Что-то я не понял это что у тебя за библиотека?
C++
1
#include <iostream>
Добавлено через 13 минут
Цитата Сообщение от if{StrikeF} Посмотреть сообщение
Что-то я не понял это что у тебя за библиотека?
C++
1
#include <iostream>
C++
1
#include <iostream.h>
Напиши так и всё скомпилируется я проверял
zulkis
 Аватар для zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
12.07.2012, 07:48     Не могу понять, где ошибка? #6
Цитата Сообщение от if{StrikeF} Посмотреть сообщение
Что-то я не понял это что у тебя за библиотека?
Код C++
1
#include <iostream>
Читайте стандарт. '.h' уже как более 10ти лет не используется в Standard C++ Library.
if{StrikeF}
0 / 0 / 0
Регистрация: 09.06.2012
Сообщений: 3
12.07.2012, 13:02     Не могу понять, где ошибка? #7
Цитата Сообщение от zulkis Посмотреть сообщение
Читайте стандарт. '.h' уже как более 10ти лет не используется в Standard C++ Library.
Я устарел
dvijok
0 / 0 / 0
Регистрация: 10.07.2012
Сообщений: 61
12.07.2012, 13:51  [ТС]     Не могу понять, где ошибка? #8
Цитата Сообщение от zulkis Посмотреть сообщение
Читайте стандарт. '.h' уже как более 10ти лет не используется в Standard C++ Library.
Так где ошибка то?
dr.curse
 Аватар для dr.curse
386 / 342 / 16
Регистрация: 11.10.2010
Сообщений: 1,907
12.07.2012, 14:06     Не могу понять, где ошибка? #9
dvijok, добавь
Objective-C
1
#include <NSObjCRuntime.h>
zulkis
 Аватар для zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
12.07.2012, 14:24     Не могу понять, где ошибка? #10
dvijok, хотите изучать Objective-C - пишите на нем. Вы же пишете на какойто смеси C\Objective-C++(ибо <iostream>)\Objective-C (NSLog() - не смешите меня).
Зачем - непонятно.
dvijok
0 / 0 / 0
Регистрация: 10.07.2012
Сообщений: 61
12.07.2012, 14:31  [ТС]     Не могу понять, где ошибка? #11
Цитата Сообщение от zulkis Посмотреть сообщение
dvijok, хотите изучать Objective-C - пишите на нем. Вы же пишете на какойто смеси C\Objective-C++(ибо <iostream>)\Objective-C (NSLog() - не смешите меня).
Зачем - непонятно.
Эмм, дело в том, что я только начал изучать это дело...
Так что вместо NSLog() то поставить?
zulkis
 Аватар для zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
12.07.2012, 22:14     Не могу понять, где ошибка? #12
Вот это Objective-C код:
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#import <Foundation/Foundation.h>
 
@interface Shape : NSObject
 
@property (nonatomic, readonly) CGFloat area;
 
@end
 
@implementation Shape
 
- (CGFloat)area {
    @throw [NSException exceptionWithName:NSObjectNotAvailableException reason:@"Abstract class" userInfo:nil];
}
 
@end
 
@interface Circle : Shape {
    @private
    CGFloat _radius;
}
 
- (id)initWithRadius:(CGFloat)radius;
 
@end
 
@implementation Circle
 
- (id)initWithRadius:(CGFloat)radius {
    self = [super init];
    if (self) {
        _radius = radius;
    }
    return self;
}
 
- (CGFloat)area {
    return M_PI * _radius * _radius;
}
 
@end
 
@interface Rectangle : Shape {
    @private
    CGSize _size;
}
 
- (id)initWithSize:(CGSize)size;
 
@end
 
@implementation Rectangle
 
- (id)initWithSize:(CGSize)size {
    self = [super init];
    if (self) {
        _size = size;
    }
    return self;
}
 
- (CGFloat)area {
    return _size.width * _size.height;
}
 
@end
 
int main(int argc, const char * argv[])
{
 
    @autoreleasepool {
        CGFloat circleRadius = 5.0;
        Circle *circle = [[Circle alloc] initWithRadius:circleRadius];
        
        CGFloat pictureWidth = 8;
        CGFloat pictureHeight = 4.5;
        CGSize size = CGSizeMake(pictureWidth, pictureHeight);
        Rectangle *rect = [[Rectangle alloc] initWithSize:size];
    
        NSLog(@"Area of circle: %f", circle.area);
        NSLog(@"Area of rectangle: %f", rect.area);
    }
    return 0;
}
"Так что вместо NSLog() то поставить?"
Я имел ввиду, что из всего написанного, ObjectiveC было только NSLog, вот поэтому и забавными показались слова "изучаю ObjectiveC".
dvijok
0 / 0 / 0
Регистрация: 10.07.2012
Сообщений: 61
18.07.2012, 16:40  [ТС]     Не могу понять, где ошибка? #13
Цитата Сообщение от zulkis Посмотреть сообщение
Вот это Objective-C код:
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#import <Foundation/Foundation.h>
 
@interface Shape : NSObject
 
@property (nonatomic, readonly) CGFloat area;
 
@end
 
@implementation Shape
 
- (CGFloat)area {
    @throw [NSException exceptionWithName:NSObjectNotAvailableException reason:@"Abstract class" userInfo:nil];
}
 
@end
 
@interface Circle : Shape {
    @private
    CGFloat _radius;
}
 
- (id)initWithRadius:(CGFloat)radius;
 
@end
 
@implementation Circle
 
- (id)initWithRadius:(CGFloat)radius {
    self = [super init];
    if (self) {
        _radius = radius;
    }
    return self;
}
 
- (CGFloat)area {
    return M_PI * _radius * _radius;
}
 
@end
 
@interface Rectangle : Shape {
    @private
    CGSize _size;
}
 
- (id)initWithSize:(CGSize)size;
 
@end
 
@implementation Rectangle
 
- (id)initWithSize:(CGSize)size {
    self = [super init];
    if (self) {
        _size = size;
    }
    return self;
}
 
- (CGFloat)area {
    return _size.width * _size.height;
}
 
@end
 
int main(int argc, const char * argv[])
{
 
    @autoreleasepool {
        CGFloat circleRadius = 5.0;
        Circle *circle = [[Circle alloc] initWithRadius:circleRadius];
        
        CGFloat pictureWidth = 8;
        CGFloat pictureHeight = 4.5;
        CGSize size = CGSizeMake(pictureWidth, pictureHeight);
        Rectangle *rect = [[Rectangle alloc] initWithSize:size];
    
        NSLog(@"Area of circle: %f", circle.area);
        NSLog(@"Area of rectangle: %f", rect.area);
    }
    return 0;
}
"Так что вместо NSLog() то поставить?"
Я имел ввиду, что из всего написанного, ObjectiveC было только NSLog, вот поэтому и забавными показались слова "изучаю ObjectiveC".
Слушай, а не посоветуешь какую-нибудь хорошую книгу для начинающих по Objective-C?
zulkis
 Аватар для zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
18.07.2012, 20:39     Не могу понять, где ошибка? #14
Книг по obj-c не читал(а может и читал что, не помню, язык простой и понятный). Только документация, только "хардкор".
Amazon
EvilYarik
 Аватар для EvilYarik
-6 / 3 / 0
Регистрация: 18.07.2012
Сообщений: 49
18.07.2012, 22:14     Не могу понять, где ошибка? #15
если без хардкора и на языке предков то это
Ozon
хотя в наличии их уже нет и врятли еще будут, тираж был всего 1к, как розница хз, но можно скачать, примеры когда на сайте издательства Apress
это самое авторитетное издательство литературы по программированию
Yandex
Объявления
18.07.2012, 22:14     Не могу понять, где ошибка?
Ответ Создать тему
Опции темы

Текущее время: 05:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru