Kleines Problem in Objective-C

jako3xb2

Fuji
Registriert
26.08.08
Beiträge
38
Hi,

Ich bin Anfänger in Objective-C. Mein Problem ist, wenn ich den Code da unten ausführe stützt das App ab und ich weiß nicht warum!? Mein Code ist:

Code:
[progress setProgress:[slider floatValue]];

"progress" entspricht einer processbar und
"slider" eines sliders
 

sheep

Fießers Erstling
Registriert
09.11.07
Beiträge
126
Code:
progress.progress=slider.value;

Du musst aber die min and max Werte des Sliders zwischen 0 und 1 setzen.
 

jako3xb2

Fuji
Registriert
26.08.08
Beiträge
38
Danke, erstmal!
Ist das Objective-C ?(Der Syntax sieht komisch aus)
 

sheep

Fießers Erstling
Registriert
09.11.07
Beiträge
126
dot Syntax.

Du kannst natürlich auch

Code:
[progress setProgress:slider.value];

benutzen.
 

jako3xb2

Fuji
Registriert
26.08.08
Beiträge
38
Funktioniert dann:

Code:
[progress setProgress:[slider value]];

(Kann ich jetzt nicht testen, erst abends)
 

jako3xb2

Fuji
Registriert
26.08.08
Beiträge
38
kanns jetzt ausprobieren. Aber es funktioniert nicht. Ich bekomme immer :

Code:
 error: incompatible type for argument 1 of 'setProgress:'
 

sheep

Fießers Erstling
Registriert
09.11.07
Beiträge
126
Hast du evtl. dein "Slider Object" falsch im "Header File" deklariert ?
 

jako3xb2

Fuji
Registriert
26.08.08
Beiträge
38
Hier die Header:

Code:
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>

@interface MAFoo : UIView {
    IBOutlet id progress;
    IBOutlet id slider;
}
- (IBAction)in2:(id)sender;
@end
 

sheep

Fießers Erstling
Registriert
09.11.07
Beiträge
126
Code:
IBOutlet UIProgressView *progress;
IBOutlet UISlider *slider;
 
  • Like
Reaktionen: Unkaputtbar

MatzeLoCal

Rheinischer Bohnapfel
Registriert
05.01.04
Beiträge
2.422
Code:
IBOutlet UIProgressView *progress;
IBOutlet UISlider *slider;

Genau so wie dein erster Hinweis:
Code:
progress.progress=slider.value;

Hilfst Du jako3xb2 damit keine Strich weiter, denn beide Codeteile die er hier gepostet hat waren syntaktisch richtig!

@@jako3xb2 hast Du im InterfaceBuilder auch die jeweiligen Controls verbunden?

Mach doch mal bevor
Code:
[progress setProgress:[slider floatValue]];

ein

Code:
NSLog(@"%@",[slider description]);
 

jako3xb2

Fuji
Registriert
26.08.08
Beiträge
38
Ok, dann kommt:

Code:
<UISlider: 0xd2b040; frame = (18 118; 284 23); clipsToBounds = YES; opaque = NO; autoresize = RM+BM; layer = <CALayer: 0xd2b290>>
 

MatzeLoCal

Rheinischer Bohnapfel
Registriert
05.01.04
Beiträge
2.422
Dann als nächstes:

Code:
NSLog(@"processbar: %@\nslider: %@\nfloatValue: %f",[progress description], [slider description],[slider value]);
 

jako3xb2

Fuji
Registriert
26.08.08
Beiträge
38
Ok, dann kommt:

Code:
processbar: <UIProgressView: 0xd2ad50; frame = (20 94; 280 9); clipsToBounds = YES; opaque = NO; autoresize = RM+BM; layer = <CALayer: 0xd1b660>>
slider: <UISlider: 0xd2b040; frame = (18 118; 284 23); clipsToBounds = YES; opaque = NO; autoresize = RM+BM; layer = <CALayer: 0xd2b290>>
floatValue: 0.565134
 

jako3xb2

Fuji
Registriert
26.08.08
Beiträge
38
Ich glaube ich weiß was mein Problem war. Ich habe vergessen beim Outlet einen Type einzugeben und habe "id" gelassen!
 

MatzeLoCal

Rheinischer Bohnapfel
Registriert
05.01.04
Beiträge
2.422
Ok, dann kommt:

Code:
processbar: <UIProgressView: 0xd2ad50; frame = (20 94; 280 9); clipsToBounds = YES; opaque = NO; autoresize = RM+BM; layer = <CALayer: 0xd1b660>>
slider: <UISlider: 0xd2b040; frame = (18 118; 284 23); clipsToBounds = YES; opaque = NO; autoresize = RM+BM; layer = <CALayer: 0xd2b290>>
floatValue: 0.565134

Komisch

Ich glaube ich weiß was mein Problem war. Ich habe vergessen beim Outlet einen Type einzugeben und habe "id" gelassen!

Nein, id ist eigentlich schon ok.

Hast Du skype?