Heyo Guys
所以我或多或少是Objective C的新手,遇到了一个我似乎无法解决的问题。
我创建了一个名为" Student"所有这些学生都被放入NSMutableArray
(在他们从JSON创建之前,这似乎没有问题)。然后将所有学生的姓名放入ListView
。之后当点击一个名字(segue通过该对象)时,应该看到所述学生的详细信息(即他的全名,他的身份证,他的街道)。
问题是学生对象的所有字符串值似乎都丢失了。
我检查了所有学生对象的工作正常。我认为问题出在我学生班的@property上。
赞赏任何意见和建议
这是student.h的摘录。如上所述,只有字符串值丢失,int(这里的plz值)保持正确
@property (nonatomic, weak)NSString *lastname;
@property (nonatomic, weak)NSString *surname;
@property (nonatomic, weak)NSString *street;
@property (nonatomic, assign)int plz;
编辑: 这是我解析我的json的地方。
for (NSDictionary *dic in jsonArray){
NSNumber *identity = [dic valueForKey:@"id"] ;
NSString *firstName = (NSString*) [dic valueForKey:@"first_name"];
NSString *lastName = (NSString*) [dic valueForKey:@"last_name"];
NSString *street = (NSString*) [dic valueForKey:@"street"];
NSNumber *plz = [dic valueForKey:@"plz"] ;
NSString *birth = (NSString*) [dic valueForKey:@"date_of_birth"];
NSArray *bills = dic[@"bills"];
NSArray *hours = dic[@"hours"];
NSLog(@"First %@",firstName);
Student *student = [[Student alloc]initWithLastName:lastName withSurname:firstName withStreet:street withPLZ:plz withOrt:@"Uitikon" withBirthDate:birth withOccupation:@"Schüler"];
[ApprenticeList addObject:student];
}
编辑2:
我发现即使在segue之前字符串值也会丢失。所有这些对象都是在
中创建的ViewDidLoad
但是在
prepareforsegue
所有的值都是null(除了int)。所以学生对象工作的唯一地方是
ViewdidLoad
答案 0 :(得分:0)
@property (nonatomic, weak)NSString *lastname;
@property (nonatomic, weak)NSString *surname;
@property (nonatomic, weak)NSString *street;
更改为
@property (nonatomic, strong)NSString *lastname;
@property (nonatomic, strong)NSString *surname;
@property (nonatomic, strong)NSString *street;
您也可以使用' copy'。它将导致该属性的setter创建对象的副本,否则它与strong相同。