мы добавляем объект в пул, и когда пул очищается, объекты удаляются из памяти, и если я не добавлю их в пул, они останутся в памяти и могут быть доступны после вызова пула метод слива. Что я сделал в своем коде, так это то, что я не добавил объект своего класса в пул и вызвал метод после того, как пул истощил, вот мой код
#import <Foundation/Foundation.h>
@interface Myclass : NSObject
{
}
-(void)fun;
@end
@implementation Myclass
-(void)fun
{
NSMutableArray *arr = [[NSMutableArray alloc]init];
char ch[10];
NSString *str;
for(int i =0;i<3;i++)
{
scanf("%s",ch);
str = [NSString stringWithCString:ch];
[arr addObject:str];
}
for(int i =0;i<3;i++)
{
NSLog(@"The values of mutable array are: %@", [arr objectAtIndex:i]);
}
}
@end
int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
Myclass *obj = [[Myclass alloc]init];
[obj fun];
// insert code here...
NSLog(@"\nEnter pool drain");
[pool drain];
[obj fun];
return 0;
}
теперь, когда метод fun вызывается после слива пула, каждый раз, когда я добавляю значение в массив, я получаю сообщение об ошибке
NSautoreleaseNoPool (): объект 0x105a80 класса NSCFString автоматически освобожден без пула на месте - просто утечка Стек: (0x4dlf из ox3de442)
но даже после показа этого сообщения я продолжал добавлять данные в мой массив, он работал нормально, но каждый раз показывал вышеуказанное сообщение. Подскажите, пожалуйста, почему это так?
Также я хотел бы знать, есть ли у них какая-либо функция, с помощью которой мы можем очистить экран консоли, я попробовал ncurses.h, но не смог этого сделать.
Пожалуйста, помогите мне решить эти две проблемы