//源码初学,内存上应该有存在泄露
// MyArray.h
// myTask
//
// Created by user on 12-4-15.
// Copyright (c) 2012年 __MyCompanyName__. All rights reserved.
//
#import <Foundation/Foundation.h>
typedef struct{
int id;
NSString *name;
} Stu;
@interface MyArray :NSObject
{
NSMutableArray *mMHBArray;
NSMutableArray *mFrameArray;
}
- (id) init;
- (id) unInit;
-(void) AddText;
-(void) PrintText;
-(void) AddOBJ : (Stu *)para;
-(Stu *) GetOBJ : (int)idx;
@end
//
// MyArray.m
// myTask
//
// Created by user on 12-4-15.
// Copyright (c) 2012年 __MyCompanyName__. All rights reserved.
//
#import "MyArray.h"
@implementation MyArray
-(id) init
{
self = [superinit];
if(self) {
//变量初始化
mMHBArray = [NSMutableArrayarrayWithCapacity:20];
mFrameArray = [NSMutableArrayarrayWithCapacity:20];
[self AddText];
[self PrintText];
}
return 0;
}
-(id) unInit
{
[mMHBArrayrelease];
[mFrameArrayrelease];
return 0;
}
-(void) AddText
{
for (int i = 0; i< 10; i++) {
Stu * pStu = (Stu *)malloc(sizeof(Stu));
pStu->id = i;
pStu->name =@"mz";
[self AddOBJ : pStu];
}
}
-(void) PrintText
{
for (int i = 0; i< 10; i++) {
Stu * ptemp = [selfGetOBJ: i];
NSLog(@"%d %@\n", ptemp->id, ptemp->name);
}
}
-(void) AddOBJ : (Stu *)para
{
NSValue *value = [NSValue valueWithBytes:para objCType:@encode(Stu)]; //此处为拷贝够着函数
[ mMHBArrayaddObject: value];
}
-(Stu *) GetOBJ : (int)idx
{
Stu *temp = (Stu *)malloc(sizeof(Stu));
NSValue *value = [self->mMHBArrayobjectAtIndex:idx];
[value getValue : temp];
return temp;
}
@end