2016-10-16 11 views
-1
Student.h 

#import <Foundation/Foundation.h> 

@interface Student : NSObject 
@property NSInteger age; 
@property NSString *name; 
@end 

Student.m 

#import "Student.h" 
@implementation Student 
@end 

StudentCount.h 

#import <Foundation/Foundation.h> 
#import "Student.h" 
NSMutable 
@interface StudentCount : NSObject 
@property NSMutableArray<Student *> *student; 
-(void)addStu:(Student *)stud; 
-(void)printStudents; 
@end 

StudentCount.m 

#import "StudentCount.h" 

@implementation StudentCount 
-(void)addStu:(Student *)stud{ 
    [_student addObject:stud]; 
} 
-(void)printStudents{ 
    for(Student *s in _student){ 
     NSLog(@"%li",s.age); 
     NSLog(@"%@",s.name); 
    } 
} 
@end 

Main.m 

#import <Foundation/Foundation.h> 
#import "Student.h" 
#import "StudentCount.h" 

int main(int argc, const char * argv[]) { 
    @autoreleasepool { 
     Student *student1=[Student alloc]; 
     student1.age=10; 
     [email protected]"Nirmal"; 

     Student *student2=[Student alloc]; 
     student2.age=12; 
     [email protected]"Anand"; 

     StudentCount *stCount=[StudentCount alloc]; 
     [stCount addStu:student1]; 
      [stCount addStu:student2]; 

     [stCount printStudents]; 


    } 
    return 0; 
} 

위의 프로그램에서 Student 개체 클래스의 NSMutableArray에 학생 개체를 추가하려고했습니다. 그 후 StudentCount 클래스의 printStudents 메서드를 호출하려고했습니다. 학생 개체가 NSMutableArray에 추가되지 않았습니다. 위의 프로그램의개체가 NSMutable 배열에 추가되지 않음

출력 : 종료 코드로 종료

프로그램 : 내가 잘못 가고 어디 0

은 알려 주시기 바랍니다.

+0

student_s_ "student"가 포함 된 배열을 호출하지 마십시오. 학생이라고 부르세요. 당신의 코드에 누워 있으면 당신과 다른 사람들 모두가 혼란스러워합니다. – gnasher729

+0

그리고 각 학생에 대한 init 호출이 없습니다. – gnasher729

답변

1

NSMutableArray * student을 할당해야합니다.

-(void)addStudent:(Student *)stud 
{ 
    if (_student == nil) { 
     _student = [[NSMutableArray alloc] init]; 
    } 
    [_student addObject:stud]; 
} 
+1

고마워요! @iAiator 그것은 효과가있었습니다. – Harish