I'm making my first app with table views and I am having trouble with the logic of it. I have a data source object with an array that contains various objects such as uiimage and nsurls pointing to word, pages, pdfs, ect. that are displayed by a uiwebview. However, before they are loaded, i want to show a table listing all the objects.
The problem is, i dont know how to display a name in the uilabel for each cell. I want the user to be able to edit the name also.
heres the code for the model
implementation file
The problem is, i dont know how to display a name in the uilabel for each cell. I want the user to be able to edit the name also.
heres the code for the model
Code:
#import <Foundation/Foundation.h>
@interface CQStorageModel : NSObject<NSCoding>
@property (strong, nonatomic) NSMutableArray *dataSource;
@property (strong, nonatomic) NSURL *savingUrl;
@property (strong, nonatomic) NSURL *appSupportUrl;
- (id) initWithDataSource;
- (void) saveDataSource;
- (void) addProject: (NSMutableArray *) arry withName: (NSString *) string;
- (void) removeProjectAtIndex: (NSUInteger) index;
- (void) addObject: (id<NSCoding>) object toProjectAtIndex: (NSUInteger) index;
- (void) removeObjectAtIndex: (NSUInteger) index1 inProjectAtIndex: (NSUInteger) index2;
- (id) loadObjectAtIndex: (NSUInteger) index1 inProjectAtIndex: (NSUInteger) index2;
@end
Code:
#import "CQStorageModel.h"
@implementation CQStorageModel
- (void) encodeWithCoder:(NSCoder *)aCoder {
[aCoder encodeObject:self.dataSource forKey:@"dataSource"];
[aCoder encodeObject:self.savingUrl forKey:@"savingUrl"];
[aCoder encodeObject:self.appSupportUrl forKey:@"APUrl"];
}
- (id) initWithCoder:(NSCoder *)aDecoder {
self = [super init];
self.dataSource = [aDecoder decodeObjectForKey:@"dataSource"];
self.savingUrl = [aDecoder decodeObjectForKey:@"savingUrl"];
self.appSupportUrl = [aDecoder decodeObjectForKey:@"APUrl"];
return self;
}
- (id) initWithDataSource {
self = [super init];
if (self) {
NSFileManager *fm = [[NSFileManager alloc]init];
self.appSupportUrl = [fm URLForDirectory:NSApplicationSupportDirectory inDomain:NSUserDomainMask appropriateForURL:nil create:NO error:nil];
if (!self.appSupportUrl)
self.appSupportUrl = [fm URLForDirectory:NSApplicationSupportDirectory inDomain:NSUserDomainMask appropriateForURL:nil create:YES error:nil];
self.savingUrl = [self.appSupportUrl URLByAppendingPathComponent:@"CQStorageModel.cqstm"];
NSData *data = [[NSData alloc]initWithContentsOfURL:self.savingUrl];
if (data)
self = [NSKeyedUnarchiver unarchiveObjectWithData:data];
}
return self;
}
- (void) saveDataSource {
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:self];
[data writeToURL:self.savingUrl atomically:NO];
}
- (void) addProject: (NSMutableArray *) arry withName: (NSString *) string {
[arry insertObject:string atIndex:0];
[self.dataSource addObject:arry];
}
- (void) removeProjectAtIndex:(NSUInteger)index {
[self.dataSource removeObjectAtIndex:index];
}
- (void) addObject:(id<NSCoding>)object toProjectAtIndex:(NSUInteger)index {
[[self.dataSource objectAtIndex:index] addObject:object];
}
- (void) removeObjectAtIndex:(NSUInteger)index1 inProjectAtIndex:(NSUInteger)index2 {
if (index1 != 0)
[[self.dataSource objectAtIndex:index2] removeObjectAtIndex:index1];
}
- (id) loadObjectAtIndex:(NSUInteger)index1 inProjectAtIndex:(NSUInteger)index2 {
id object = [[self.dataSource objectAtIndex:index2]objectAtIndex:index1];
return object;
}
@end
Last edited: