2012-02-17 3 views
-2

У меня есть приложение, в котором у меня есть текстовое представление. Текстовое представление заполняется с первого элемента управления представлением до элемента управления подробным представлением и отличается в зависимости от того, какое изображение в первом представлении используется. Пользователь может нажать на него и добавить текст, а затем скрыть клавиатуру. Я бы хотел, чтобы они могли сохранить добавленный текст в приложении. Может ли кто-нибудь помочь мне сделать это или указать мне в правильном направлении.Добавление текста в текст внутри приложения iPhone

Вот код от первого контроллера вида.

- (void) coverflowView:(TKCoverflowView*)coverflowView coverAtIndexWasDoubleTapped:(int)index{ 

SomeDetailViewController *detailViewController = [[SomeDetailViewController alloc] initWithNibName:@"SomeDetailViewController" bundle:nil]; 

    if ((int)index == 0) { 

     [[NSUserDefaults standardUserDefaults] setObject:(@"This is #1") 
                forKey:@"textkey"]; 
    } 
    else if ((int)index == 1) { 
     [[NSUserDefaults standardUserDefaults] setObject:(@"This is #2") 
                forKey:@"textkey"]; 
} 
etc. 
[self.navigationController pushViewController:detailViewController animated:YES]; 
} 

На detailViewController мой код

-(void) ViewDidLoad { 

UIBarButtonItem *doneButton =[[UIBarButtonItem alloc] 
            initWithTitle:@"Done" 
            style:UIBarButtonItemStyleBordered 
            target:self 
            action:@selector(doneEditing:)]; 
    self.navigationItem.rightBarButtonItem = doneButton;      //I could use this as the save button. 

self.myText.text =[[NSUserDefaults standardUserDefaults] objectForKey:@"textkey"]; 

} 

Благодаря


ОК Я пытаюсь избавиться от NSUserDefaults и пойти с NSMutableDictionary.

Вот мой новый код в контроллере первого вида, где USUserDefault был.

- (void) coverflowView:(TKCoverflowView*)coverflowView coverAtIndexWasDoubleTapped:(int)index{ 




SomeDetailViewController *detailViewController = [[SomeDetailViewController alloc] initWithNibName:@"SomeDetailViewController" bundle:nil]; 

    if ((int)index == 0) { 
     NSMutableDictionary *mydictionary = [[NSMutableDictionary alloc] init]; 
     [mydictionary setObject:(@"0002.jpg") 
         forKey:@"imagekey"]; 

    } 

[self.navigationController pushViewController:detailViewController animated:YES]; 
} 

В detailViewController я написал этот код в ViewDidLoad {

imageView .image = [[UIImage alloc] init]; 
    self.imageView.image =[UIImage imageNamed:[[NSMutableDictionary ] objectForKey:@"imagekey"]]; 

Для замены кода NSUserDefault.

, но я продолжаю получать ошибки

Ожидаемое ';' после выражения Ожидаемое выражение Результат неиспользования Ожидаемый идентификатор

Помогло ли кто-нибудь помочь.

+0

Что вы подразумеваете под «сохранить в приложении»? – fzwo

ответ

1

Это не похоже на использование класса NSUserDefaults. Он предназначен для постоянного хранения, а не для межклассовой коммуникации. Если вы хотите продолжать использовать его таким образом, обязательно вызовите [[NSUserDefaults standardUserDefaults] synchronize]; после установки значения.

Onto вашего вопроса ...

Поскольку у вас уже есть TextView с текстом свойством, которое содержит текущий текст, вы просто можете использовать это в качестве механизма хранения. Когда вы создаете экземпляр своего SomeDetailViewController, просто передайте textview.text в пользовательский метод инициализации или даже установите свойство detailViewController.myText.text непосредственно из своей реализации coverflowView:coverAtIndexWasDoubleTapped:.

+0

Очень верно: NSUserDefaults сохраняет данные во флэш-память, которая «стареет» при каждой записи. Я считаю, что проверка того, что приложение сохраняет слишком часто, является частью процесса утверждения App Store. –

+0

Хорошо, я довольно новичок в этом. Не могли бы вы показать мне, что вы имеете в виду в коде. Делая это таким образом, я бы избавился от текущего способа загрузки моего текста? – user1114881

+0

, может быть, лучший вопрос: как бы вы предложили (проиллюстрировать) загрузку текста вместо NSUsersDefaults? – user1114881