0

我创建了这样的 Author 类:

@interface Author : NSObject{
NSString *authorID;
NSString *email;
NSString *userName;
NSString *password;
NSString *jenisKelamin;
NSString *alamat;
NSString *kota;
NSString *telepon;
NSString *pekerjaan;
NSString *nama;
NSString *tanggalDaftar;
NSString *status;
NSString *lastLogin;
NSString *publishPhoto;
NSString *komentar;
NSString *balasKomentar;
NSString *newsLetter;
}

@property (nonatomic, retain)NSString *authorID;
@property (nonatomic, retain)NSString *email;
@property (nonatomic, retain)NSString *userName;
@property (nonatomic, retain)NSString *password;
@property (nonatomic, retain)NSString *jenisKelamin;
@property (nonatomic, retain)NSString *alamat;
@property (nonatomic, retain)NSString *kota;
@property (nonatomic, retain)NSString *telepon;
@property (nonatomic, retain)NSString *pekerjaan;
@property (nonatomic, retain)NSString *nama;
@property (nonatomic, retain)NSString *tanggalDaftar;
@property (nonatomic, retain)NSString *status;
@property (nonatomic, retain)NSString *lastLogin;
@property (nonatomic, retain)NSString *publishPhoto;
@property (nonatomic, retain)NSString *komentar;
@property (nonatomic, retain)NSString *balasKomentar;
@property (nonatomic, retain)NSString *newsLetter;

@end

并像这样阅读json:

imageArray = [[NSMutableArray alloc]init];
NSURL *url = [NSURL URLWithString:urlString];
NSData *data = [[NSData alloc]initWithContentsOfURL:url];
NSError *jsonParsingError = nil;
id myJson = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&jsonParsingError];
NSDictionary *imageList;
for (int i=0; i<[myJson count]; i++) {
    imageList=[myJson objectAtIndex:i];
    currentImage = [ImageList alloc];
    currentImage.imageID=[imageList valueForKey:@"id"];
    currentImage.tanggal=[imageList valueForKey:@"tanggal"];
    currentImage.judul=[imageList valueForKey:@"judul"];
    currentImage.namaFile=[imageList valueForKey:@"nama_file"];
    currentImage.deskripsi=[imageList valueForKey:@"deskripsi"];
    currentImage.user=[imageList valueForKey:@"user"];
    currentImage.status=[imageList valueForKey:@"status"];
    currentImage.views=[imageList valueForKey:@"views"];
    currentImage.rating=[imageList valueForKey:@"rating"];
    currentImage.totalRating=[imageList valueForKey:@"total_rating"];
    currentImage.totalPerating=[imageList valueForKey:@"total_perating"];
    currentImage.imageThemeID=[imageList valueForKey:@"tema"];
    currentImage.bayesianRating=[imageList valueForKey:@"bayesian_rating"];
    currentImage.imageURL=[imageList valueForKey:@"img_url"];
    NSDictionary *authorDict = [imageList objectForKey:@"author"];
    currentImage.author = [[[Author alloc] init] autorelease];
    currentImage.author.authorID = [authorDict valueForKey:@"id"];
    currentImage.author.email = [authorDict valueForKey:@"email"];
    currentImage.author.userName = [authorDict valueForKey:@"username"];
    currentImage.author.password = [authorDict valueForKey:@"password"];
    currentImage.author.jenisKelamin = [authorDict valueForKey:@"jenis_kelamin"];
    currentImage.author.alamat = [authorDict valueForKey:@"alamat"];
    currentImage.author.kota = [authorDict valueForKey:@"kota"];
    currentImage.author.telepon = [authorDict valueForKey:@"telepon"];
    currentImage.author.pekerjaan = [authorDict valueForKey:@"pekerjaan"];
    currentImage.author.nama = [authorDict valueForKey:@"nama"];
    currentImage.author.tanggalDaftar = [authorDict valueForKey:@"tanggal_daftar"];
    currentImage.author.status = [authorDict valueForKey:@"status"];
    currentImage.author.lastLogin = [authorDict valueForKey:@"last_login"];
    [imageArray addObject:currentImage];
    [currentImage release];
    return self;
}

但是,如果我尝试使用以下方法获取值:

jsonImage =[[JSONReader alloc]loadImageList:newURL];
    ImageList *currentImage;
    currentImage = [[jsonImage imageArray]objectAtIndex:0];
    [jsonTheme release];
    if([jsonImage.imageArray count]>0){
        NSLog(@"getting image starting");
        NSURL *imageURL=[NSURL URLWithString:currentImage.imageURL];
        NSLog(@"image URL from array : %@", currentImage.imageURL);
        NSData *imageData=[NSData dataWithContentsOfURL:imageURL];
        imgTemp = [UIImage imageWithData:imageData];
        self.imgImage.image = imgTemp;
        NSLog(@"getting image stop");
        lblDate.text = currentImage.tanggal;
        lblDescription.text = currentImage.deskripsi;
        lblSummary.text = currentImage.judul;
        Author *currentAuthor = currentImage.author;
        lblUser.text = currentAuthor.userName;

        [currentImage release];
    }


lblUser.text = currentTheme.author.userName; the result of lblUser is null.

当我尝试调试时, userName 的值有 index :

currentAuthor   Author *    0x071a9a20
NSObject    NSObject    
authorID    NSString *  0x0753e700
[0] id  0x071a4ad0
[0] id  
email   NSString *  0x075403a0
[0] id  0x071a58e0
userName    NSString *  0x0753fef0
[0] id  0x071a5930

你能告诉我如何获取 currentAuthor 值吗?

4

1 回答 1

0

我认为,同时发布 currentImage 。作者的价值也发生了变化。请进行以下更改并尝试

Author *currentAuthor =[ currentImage.author copy];
于 2014-06-13T08:57:36.840 回答