Beste mensen,
Excuses voor hetgeen hiervoor stond, nalezen van een Apple document bracht mij stukken verder. Nu heb ik echter NSCoding geimplementeerd in een NSObject en probeer ik een object te saven mbv NSKeyedArchiver. Hier gaat echter iets mis met het daadwerkelijke schrijven. Zien jullie de fout toevallig? <NSCoding> staat aangegeven in de header-file.
De implementatie:
Excuses voor hetgeen hiervoor stond, nalezen van een Apple document bracht mij stukken verder. Nu heb ik echter NSCoding geimplementeerd in een NSObject en probeer ik een object te saven mbv NSKeyedArchiver. Hier gaat echter iets mis met het daadwerkelijke schrijven. Zien jullie de fout toevallig? <NSCoding> staat aangegeven in de header-file.
De implementatie:
code:
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
| @implementation AppController - (void)awakeFromNib { speechSynthesizer = [[NSSpeechSynthesizer alloc] init]; /* Make the Window object the responder to NSSpeechSynthesizer delegate methods */ [speechSynthesizer setDelegate:self]; [speechSynthesizer setVoice:NULL]; SpeechList *temp = [[SpeechList alloc] init]; Voices = temp.speechList; [temp release]; temp = nil; [tableView reloadData]; } #pragma mark Dealloc -(void)dealloc { [Voices release]; Voices = nil; [super dealloc]; } #pragma mark Loading/Savings - (IBAction)saveMyTable:(id)sender { NSMutableData *data; data = [NSMutableData data]; archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data]; panel = [NSSavePanel savePanel]; [panel setDirectory:@"~/Library/"]; int panelResult = [panel runModal]; BOOL result; if (panelResult == NSOKButton) { [archiver encodeObject:Voices forKey:@"Voices"]; [archiver finishEncoding]; result = [data writeToFile:@"~/Users/Vinz/Desktop" atomically:YES]; if (result == NO) { NSBeep(); [archiver release]; return; } [archiver release]; } } #pragma mark Action methods - (IBAction)startSpeaking:(id)sender { NSString *speechText = [textField stringValue]; [speechSynthesizer startSpeakingString:speechText]; } #pragma mark Datasource methods - (int)numberOfRowsInTableView:(NSTableView *)tv { return [Voices count]; } - (id)tableView:(NSTableView *)tv objectValueForTableColumn:(NSTableColumn *)tableColumn row:(int)row { NSString *voice = [Voices objectAtIndex:row]; NSDictionary *dict = [NSSpeechSynthesizer attributesForVoice:voice]; return [dict objectForKey:NSVoiceName]; } #pragma mark Delegate methods - (void)tableViewSelectionDidChange:(NSNotification *)notification { int row = [tableView selectedRow]; if (row == -1) { return; } NSString *selectedVoice = [Voices objectAtIndex:row]; [speechSynthesizer setVoice:selectedVoice]; } #pragma mark Coder methods - (void)encodeWithCoder:(NSCoder *)coder { [coder encodeObject:Voices forKey:@"Voices"]; } - (id)initWithCoder:(NSCoder *)coder { [super init]; Voices = [[coder decodeObjectForKey:@"Voices"] retain]; return self; } @end |
[ Voor 83% gewijzigd door vgroenewold op 25-11-2008 16:22 ]