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