segue之后自定义对象的NSstring值丢失(目标C)

时间:2015-03-08 20:11:28

标签: ios objective-c memory-management

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

1 个答案:

答案 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相同。