Derzeit wird versucht, ein Array zu speichern, das entsprechend den Zellen in einem UITableView-Objekt ausgefüllt ist, und dieses Array in einer Instanz eines separaten Objekts zu speichern. Ich bekomme das Array zu füllen, aber meine Speichermethode, die eine IBAction ist, die durch Klicken auf eine Schaltfläche aufgerufen wird, scheint nicht zu funktionieren. Hier ist ein Code:Speichern von Arrays zwischen Klassen
-(IBAction)saveWorkout:(id)sender {
Workouts *new = [[Workouts alloc] init];
[new addNewWorkout:customWorkout];
[customWorkout removeAllObjects];
}
Dieser Code stammt aus der ersten Klasse.
Und hier ist der Code für meine addNewWorkouts Methode in der Klasse Traininge:
-(void)addNewWorkout:(NSMutableArray*)array {
NSMutableArray *temp = [[NSMutableArray alloc] init];
temp = array;
self.workoutList = temp;
[temp release];
}
Hier ist meine "Workout.h"
#import <Foundation/Foundation.h>
@interface Workouts : NSObject {
NSString *workoutName;
NSMutableArray *workoutList;
NSString *description;
int *reps;
int *weights;
int *sets;
}
@property (nonatomic, retain) NSString *workoutName;
@property (nonatomic, retain) NSString *description;
@property (nonatomic, retain) NSMutableArray *workoutList;
-(void)addNewWorkout:(NSMutableArray*)array;
@end
Vor dem Ausführen dieses Codes Ich erhalte eine Warnung von Xcode, dass 'Workouts möglicherweise nicht auf' addNewWorkouts 'reagieren.
Wer weiß, was diesen Fehler verursacht? Sobald ich & run gebaut habe, klicke ich auf die Schaltfläche Speichern und die App stürzt mit einem unbekannten Selektor ab, der an Instanz 0x3b04410 Fehler gesendet wird.
Dies hängt nicht mit Ihrem Problem zusammen, aber sobald Sie diesen Fehler behoben haben, funktioniert Ihr Code immer noch nicht richtig. Ich würde vorschlagen, die Speicherverwaltungsregeln zu überprüfen: https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/MemoryMgmt/Articles/MemoryMgmt.html#//apple_ref/doc/uid/10000011-SW1 (Hinweis: Das '[[NSMutableArray alloc] init]' an der Spitze ist ein Leck, die '[temp release]' am unteren Rand ist eine Overrelease, und 'self.workoutList = temp' kann oder kann nicht richtig funktionieren, abhängig von Wie der Setter für die "workoutList" -Eigenschaft implementiert wird – Chuck