Как читать и писать листы, которые работают как приложения для iphone note - PullRequest
0 голосов
/ 10 декабря 2010

Привет, я новичок в программировании для iphone, и мне нужна помощь.

Я хотел бы создать приложения, подобные блокнотам, которые позволят пользователю писать и сохранять свои заметки, подобно приложениям для заметок iphone, использующим plist., это возможно?

аналогично приложениям для iphone, что я могу перечислить все созданные мной заметки, это возможно.

Дизайн не важен для моих приложений, потому что это только для меня, чтобы учиться.

Кто-нибудь может помочь мне найти хороший учебник?

Благодарю вас, ребята, вавансы для ответа, любой ответ будет принята с благодарностью:)

Ответы [ 2 ]

1 голос
/ 10 декабря 2010

Самый простой способ сделать это - сохранить текст из вашего текстового представления в файл .txt.

//NotesViewController.h

#import <UIKit/UIKit.h>


@interface NotesViewController : UIViewController {
    UITextView *textView;
}
@property (nonatomic, retain) UITextView *textView;

-(void)loadNotes;
-(void)saveNotes;

@end



//NotesViewContoller.m

#import "NotesViewController.h"


@implementation NotesViewController

@synthesize textView;

-(void)viewDidLoad {
     textView = [[UITextView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
     self.view = textView;
     [self loadNotes];
}

-(void)loadNotes {
        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *path = [documentsDirectory stringByAppendingPathComponent:@"savedText.txt"];
    NSString *text = [[NSString alloc] initWithContentsOfFile:path];
    UIColor *clear = [[UIColor alloc] initWithRed:255 green:255 blue:255 alpha:0];
    textView.backgroundColor = clear;
    textView.font = [UIFont fontWithName:@"Arial" size:18.0];
    textView.text = text;
}

-(void)saveNotes {
    [textView resignFirstResponder];
    NSString *textToSave = [textView text];

    if (textToSave == nil || textToSave.length == 0) {
        textToSave = @"";
    }

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *path = [documentsDirectory stringByAppendingPathComponent:@"savedText.txt"];
    [textToSave writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:NULL];
}

Это должно сработать, дайте мне знать, если это не так.

0 голосов
/ 10 декабря 2010

Возможно;)

Самый простой способ хранения данных - использовать NSUserDefaults.

Допустим, у вас есть записка:

NSString *mynote = [NSString stringWithFormat:@"My first note"];

и хотите, чтобы он был сохранен, тогда вы делаете:

NSUserDefaults *userDefs = [NSUserDefaults standardUserDefaults];
[userDefs setObject:myNote forKey:@"kMyNote"];

но вам придется ключ для каждой ноты, что нежелательно;)

Таким образом, вы можете создать NSArray и поместить туда свои заметки:

//inmutable, cannot be changed later
NSArray *notes = [NSArray arrayWithObjects:myNote, nil];

//or you can try with mutable arrays
//NSMutableArray *notes = [NSMutableArray array]; 
//[array addObject:myNote];
//[array addObject:myNote2];//, add more elements as needed

//save them
[userDefs setObject:notes forKey:@"kNotes"];

и когда вы хотите получить значения снова:

NSArray *savedNotes = [userDefs objectForKey:@"kNotes"];

Имейте в виду, что вы храните NSArrays. Даже если вы сохранили NSMutableArray с помощью «kNotes», позже вы получите неизменяемый NSArray.

Пожалуйста, прочитайте далее NSUserDefaults , поскольку существуют некоторые ограничения на типы объектов, которые вы можете и не можете хранить.

Вы можете использовать этот подход для хранения самого текста или, возможно, для хранения путей к файлам, как в примере @Jumhyn.

Если вы не хотите серьезно относиться к этому, вы найдете CoreData гораздо более полезным и эффективным;)

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...