[__NSPlaceholderArray initWithObjects:count:]: попытка вставить нулевой объект из объектов[0]IOS

Программируем под IOS
Ответить
Anonymous
 [__NSPlaceholderArray initWithObjects:count:]: попытка вставить нулевой объект из объектов[0]

Сообщение Anonymous »

У меня есть EAGLView, использующий PresentFrameBuffer и сохраняющий снимок экрана из EAGLView, отправляющий этот снимок экрана в UIViewController для платформы социальной сети UIActivityViewController. Итак, я сохранил в NSUserDefaults, а затем получил в UIViewController. Но я получаю Завершающее приложение из-за неперехваченного исключения «NSInvalidArgumentException», причина: «*** -[__NSPlaceholderArray initWithObjects:count:]: попытка вставить нулевой объект из объектов [0]»

EAGLView.h

@property (nonatomic, copy) UIImage * screensht;

@property (nonatomic, copy) UIButton * save;


EAGLview.mm

- (BOOL)presentFramebuffer
{

if (_takePhotoFlag)

{

UIImage *glImage = [self glToUIImage];
self.screensht = [self createSavableImage:glImage];

[[NSUserDefaults standardUserDefaults] setObject:UIImagePNGRepresentation(self.screensht) forKey:@"image"];

UIImageWriteToSavedPhotosAlbum(self.screensht, nil, nil, nil);

}

glBindRenderbuffer(GL_RENDERBUFFER, colorRenderbuffer);

return [context presentRenderbuffer:GL_RENDERBUFFER];
}

-(void)save:(id)sender{

_takePhotoFlag = YES;

}


Viewcontroller.mm:

- (void)viewDidLoad
{
[super viewDidLoad];

[eaglView.save addTarget:self action:@selector(save:) forControlEvents:UIControlEventTouchUpInside];

}

-(void)save:(id)sender{

NSLog(@"save click");

NSData* imageData = [[NSUserDefaults standardUserDefaults] objectForKey:@"image"];
UIImage* image = [UIImage imageWithData:imageData];

NSArray *activityItems = @[image];

UIActivityViewController *avc = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];
avc.excludedActivityTypes = [NSArray arrayWithObjects:UIActivityTypePrint, UIActivityTypeCopyToPasteboard, UIActivityTypeAssignToContact, UIActivityTypeSaveToCameraRoll, nil];
[self presentViewController:avc animated:YES completion:nil];

}


NSUserDefaults Null:

[[NSUserDefaults standardUserDefaults] setObject:UIImagePNGRepresentation(self.screensht) forKey:@"image"];

NSLog(@"nsuserdefauls is %@",[[NSUserDefaults standardUserDefaults] stringForKey:@"image"]);

nsuserdefauls is (null)


Подробнее здесь: https://stackoverflow.com/questions/242 ... bject-from
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»