читать из списка и загружать в название изображения / текст метки - PullRequest
0 голосов
/ 15 декабря 2011

Понятия не имею, где этот код неправильный.Пожалуйста, помогите, это должно считывать значение из словаря, и я использую значение для вызова изображения.Я пытался прочитать значение как label.text, но у меня ничего не получилось.

Единственный, кого я могу вызвать - из nslog.

for (id key1 in dictionary)
{
    NSMutableString *textnamed = [dictionary objectForKey:key1];
    NSMutableString *imageDisplay =[NSMutableString stringWithFormat:@"%@.png",[dictionary objectForKey:key1]];

    eyeImageSaved.image = [UIImage imageNamed:imageDisplay];

    labelSaved.text = textnamed;

    NSLog(@"%@",textnamed);
}

Ответы [ 3 ]

0 голосов
/ 15 декабря 2011

nameDataFormArray_ & imageDataFormArray_ равны NSMutableArray.Оба имеют строку и находят изображение согласно строке (название изображения).

- (void)readInfoFromThePlist
{    
    NSString* PListPath=[[NSBundle mainBundle] pathForResource:@"dataList" ofType:@"plist"];
    NSMutableArray* tempDataList=[[NSMutableArray alloc ] initWithContentsOfFile:PListPath];
    for(NSDictionary *dataDict in tempDataList)
    {
        [nameDataFormArray_ addObject:[dataDict objectForKey:@"name"]];
        [imageDataFormArray_ addObject:[dataDict objectForKey:@"imagepath"]];
    }  

    [tempDataList release];
}
0 голосов
/ 20 декабря 2011

Я решил свою проблему.В приведенном выше коде нет ничего плохого, ошибка, которую я сделал, состоит в том, что объект, который должен содержать мою переменную и хранить в plist, так как имя изображения стало нулевым.Поэтому я добавил объект к appdelegate.h, как показано ниже:

AppDelegate

@interface AppDelegate : UIResponder <UIApplicationDelegate>  
{
    NSString *imageNameHolder;
}  
@property (retain, nonatomic) NSString *StorageDecider;  

View Controller

- (IBAction)lips2:(id)sender {  
    imageNameHolder = @"lips_blue";
} 

-(void)writeNewPlist  
{  
    AppDelegate* ref = (AppDelegate*) [[UIApplication sharedApplication] delegate];
    [dictionary setObject:imageNameHolder forKey:@"image1"];  
        [dictionary writeToFile:finalPath atomically:YES];  
}
0 голосов
/ 15 декабря 2011

Есть несколько проблем с вашим кодом.Прежде всего, вы должны рассмотреть возможность использования NSString вместо NSMutableString, потому что это должно быть быстрее.Во-вторых, почему вы помещаете объект словаря в строку, а затем снова вызываете объект словаря в следующей строке?Эта первая строка не нужна.Вполне возможно, что словарная запись не является строкой, и поэтому у вас возникают проблемы.Вы должны написать это так NSString *textnamed = (NSString *)[dictionary objectForKey:key1].Кроме того, imageNamed может использоваться только для файлов в комплекте файлов.Вы уверены, что эти фотографии хранятся там?Есть несколько других проблем, которые могут возникнуть.Что именно здесь происходит не так?

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