Salut les Objective-C,
Je vient de commencer a apprendre l'Objective-C,
je suppose que le syst�me Mac/Apple est �crit en ce langage a la syntaxe exotique.
Et j'ai donc plusieurs questions.
1. Est-ce que le signe ';' est n�cessaire apr�s la **d�finition** d'une m�thode.
Car les 2 syntaxes marches avec ou sans.
---
2. XCode est le meilleur I.D.E que j'ai put rencontrer dans ma carri�re et
j'ai plusieurs questions concernant celui-ci:
+ Comment faire quand ont fait un build (bouton play) et que XCode (pas mon programme)
lance plusieurs threads et semble faire de la sortie standard la sortie d'un debogger
suite a une erreur ?
(ldbg) je crois
Car je n'arrive plus a reswitcher en mode de sortie normale.
..note::
Il faut dire que je appr�cie gu�re les I.D.E car il cache tout le fonctionnement.
Etc...
Pourtant XCode me satisfait pour l'objective-c.
---
3. Existe t il une variable make pour gcc (GNU Compiler Collection) concernant l'objective-C ?
Je croix que pour les autotools pour d�signer l'objective-C comme langage c'est:
AC_LANG([obj-c])
---
4. Comment trouver le binaire qui est g�n�rer par XCode dans le syst�me de fichier ?
Car j'ai chercher dans /usr/local/bin et il n'y est pas ???
---
5. Comment est le portage vers un syst�me GNU car il existe un GNUStep issue de OpenStep.
Car j'ai t�l�chager tout le n�cessaire sous GNU/Linux:
Et quand je essai de compiler il me dit qu'il ne trouve pas <foundation/foundation.h>
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2 $ apt-cache search step | grep dev # And install all -dev package.
J'ai lue en partie un peu la documentation et il semble qu'un portage vers GNU/Linux
etait d�j� devenus presque impossible dans des documents datant de 2004 (les derniers en date).
qui disaient d�j� que c'�tait difficile.
6. Comment ajouter les chemins (avec XCode) requis afin de se servir des biblioth�ques que j'ai p�cher avec brew ?
7. Quel est la meilleurs syntaxe pour r�f�rer un membre de class:
+ _member =
+ self.member = // Of course self is initalize.
8. Quand utiliser la notation avec point globalement (dot notation) ou est t elle a proscrire pour la notation [object method:arg].
---
Voici un peu de code que j'ai �crit.
:file: Fraction.h
:file: Fraction.m
Code : S�lectionner tout - Visualiser dans une fen�tre � part
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 // XCode generated header comments erased. /** Fraction a class to hold integer fractions. * Not precise but useful for learning. **/ #ifndef Fraction_h #define Fraction_h @interface Fraction : NSObject @property (nonatomic) int numerator ; @property (nonatomic) int denominator; -(instancetype) initWithNum:(int)n WithDen:(int)d; -(instancetype) init; -(Fraction *)add:(Fraction *)f; -(Fraction *)sub:(Fraction *)f; -(Fraction *)mult:(Fraction *)f; -(Fraction *)div:(Fraction *)f; -(double) fractionToNumb; -(BOOL)isEqual:(Fraction *)f; // This method should be private. -(void)reduce; @end
---
Code : S�lectionner tout - Visualiser dans une fen�tre � part
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161 // XCode generated header comments erased. /** Fraction a class to hold integer fractions. * Not precise but useful for learning. **/ #import <Foundation/Foundation.h> #import "Fraction.h" @implementation Fraction -(instancetype) initWithNum:(int)n WithDen:(int)d { if (d == 0) { @throw NSInvalidArgumentException; } self = [super init]; if (self) { self.numerator = n ; self.denominator = d ; } return self ; } -(instancetype) init { return [[Fraction alloc] initWithNum:1 WithDen:1]; } -(Fraction *) add:(Fraction *)f { // a/b + c/d = ((a * d) + (c * b)) + (b * d) ; int num = (self.numerator * f.numerator) + (self.denominator * f.denominator) ; int den = self.denominator * f.denominator ; Fraction *ret = [[Fraction alloc] initWithNum:num WithDen:den]; [ret reduce] ; return ret ; } -(Fraction *) sub:(Fraction *)f { // a/b - c/d = ((a * d) + (c * b)) - (b * d) ; int num = (self.numerator * f.numerator) - (self.denominator * f.denominator) ; int den = self.denominator * f.denominator ; Fraction *ret = [[Fraction alloc] initWithNum:num WithDen:den]; [ret reduce] ; return ret ; } -(Fraction *) mult:(Fraction *)f { // Multiply and divide are the same operation. int num = self.numerator * f.denominator ; int den = self.denominator * f.numerator ; Fraction *ret = [[Fraction alloc] initWithNum:num WithDen:den]; [ret reduce] ; return ret ; } -(Fraction *) div:(Fraction *)f { // Multiply and divide are the same operation. int num = self.numerator * f.denominator ; int den = self.denominator * f.numerator ; Fraction *ret = [[Fraction alloc] initWithNum:num WithDen:den]; [ret reduce] ; return ret ; } -(double) fractionToNumb { return ((double)self.numerator) / ((double)self.denominator) ; } -(NSString *)description { return [NSString stringWithFormat:@"Fraction: %i/%i == %lf\n", self.numerator, self.denominator, [self fractionToNumb]]; } -(BOOL)isEqual:(Fraction *)f { double cmp1 = [self fractionToNumb] ; double cmp2 = [f fractionToNumb]; return cmp1 == cmp2 ; } -(void)reduce { int v = self.numerator ; int u = self.denominator ; int temp ; while (v != 0) { temp = u % v ; u = v ; v = temp ; } self.numerator /= u; self.denominator /= v; return ; } @end
Merci pour vos r�ponses �clair�s.
P.S: Toute aide, conseil, etc... sont la bienvenue.
:footnote: Cela fait longtemps que je essaie de packager pour Mac et je n'y arrive qu'avec les autotools mais pas pour client lambda, toute aide est la bienvenue merci.
Partager