GVKun编程网logo

objective-c – PHPhotoLibrary保存gif数据(php动图怎么保存)

14

对于想了解objective-c–PHPhotoLibrary保存gif数据的读者,本文将是一篇不可错过的文章,我们将详细介绍php动图怎么保存,并且为您提供关于ios–是否有编译为Objective

对于想了解objective-c – PHPhotoLibrary保存gif数据的读者,本文将是一篇不可错过的文章,我们将详细介绍php动图怎么保存,并且为您提供关于ios – 是否有编译为Objective-C或与Objective-C二进制兼容的语言 – > Objective-C的Coffeescript、ios – 未能使用PHPhotoLibrary将UIImage保存到相机胶卷、iphone – Objective-C:何时调用self.myObject vs只调用myObject、iphone – 我需要释放一个复制的NSObjects – Objective-c的有价值信息。

本文目录一览:

objective-c – PHPhotoLibrary保存gif数据(php动图怎么保存)

objective-c – PHPhotoLibrary保存gif数据(php动图怎么保存)

我在新的 PHPhotoLibrary中找不到与ALAssetsLibrary-> writeImageDataToSavedPhotosAlbum类似的方法,因为在iOS 9中不推荐使用ALAssetsLibrary我无法保存GIF可能我正在使用此代码

[[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{
        PHAssetChangeRequest *assetRequest = [PHAssetChangeRequest creationRequestForAssetFromImage:[UIImage imageWithData:gifdata]];
        placeholder = [assetRequest placeholderForCreatedAsset];
        photosAsset = [PHAsset fetchAssetsInAssetCollection:collection options:nil];
        PHAssetCollectionChangeRequest *albumChangeRequest = [PHAssetCollectionChangeRequest changeRequestForAssetCollection:collection
                                                                                                                      assets:photosAsset];
        [albumChangeRequest addAssets:@[placeholder]];
    } completionHandler:^(BOOL success,NSError *error) {
        if (success)
        {

        }
        else
        {

            NSLog(@"%@",error);
        }
    }];

解决方法

我使用NSData来保存gif图像,在iOS8之后不推荐使用ALAssetsLibrary方法UIImageWritetoSavedPhotosAlbum,api说我们可以使用
PHAssetCreationRequestmethod [[PHAssetCreationRequest creationRequestForAsset] addResourceWithType:PHAssetResourceTypePhoto data:data options:options];保存这个gif图像数据,所以你也可以使用url请求来保存gif

代码如下:

Nsstring *path = [[NSBundle mainBundle] pathForResource:@"1" ofType:@"gif"];
NSData *data = [NSData dataWithContentsOfFile:path];
[[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{
    PHAssetResourceCreationoptions *options = [[PHAssetResourceCreationoptions alloc] init];
    [[PHAssetCreationRequest creationRequestForAsset] addResourceWithType:PHAssetResourceTypePhoto data:data options:options];
} completionHandler:^(BOOL success,NSError * _Nullable error) {
    NSLog(@":%d",success);
}];

ios – 是否有编译为Objective-C或与Objective-C二进制兼容的语言 – > Objective-C的Coffeescript

ios – 是否有编译为Objective-C或与Objective-C二进制兼容的语言 – > Objective-C的Coffeescript

我最近发现了 eero programming lanugage
我发现它的概念非常有趣.它似乎主要是语法糖,看起来很可读.

虽然它不直接编译到Objective-C,但它声称生成与Objective-C相同的二进制代码

Eero compiles down to the same binary code as Objective-C

Eero offers excellent,nearly seamless interoperability with
Objective-C,C,and C++.

我发现这种方法非常有趣,我想知道是否有类似的编程语言和项目提供与Objective-C和iOS的大腿集成.
我正在为Objective-C寻找类似Coffeescript的东西.

解决方法

虽然使用eero的主要方法是将其编译为本机代码,但它也支持源到源的转换(从eero到标准的Objective-C/C++).有关详细信息,请参阅 https://github.com/eerolanguage/eero/wiki/Translator.

它确实需要记录在一个更明显的地方……

ios – 未能使用PHPhotoLibrary将UIImage保存到相机胶卷

ios – 未能使用PHPhotoLibrary将UIImage保存到相机胶卷

我正在尝试将UI Image保存到相机胶卷.
Apple不推荐使用UIImageWritetoSavedPhotosAlbum,因此我避免使用它(对于ALAssets也是如此),它强制使用PhotoLibrary.

这是我正在使用的代码:

定义:

var rollCollection : PHAssetCollection!;

初始化:

let result = PHAssetCollection.fetchAssetCollectionsWithType(.SmartAlbum,subtype: .SmartAlbumUserLibrary,options: nil);
rollCollection = result.firstObject as? PHAssetCollection;

保存图片的代码:

if (rollCollection != nil){
        PHPhotoLibrary.sharedPhotoLibrary().performChanges({
            let assetRequest = PHAssetChangeRequest.creationRequestForAssetFromImage(
                self.originalImg!);

            let albumChangeRequest = PHAssetCollectionChangeRequest(forAssetCollection: self.rollCollection!);
            let assetPlaceHolder = assetRequest.placeholderForCreatedAsset;
            albumChangeRequest!.addAssets([assetPlaceHolder!])

            },completionHandler: { success,error in
                dispatch_async(dispatch_get_main_queue(),{
                    print ("\(error!)");
                    if (!success){
                        self.presentViewController(self.alertCantSave!,animated: false,completion: nil);
                    }
                    else {
                        self.presentViewController(self.alertSaved!,completion: nil);
                    }
                });

        })
    }
    else {
        dispatch_async(dispatch_get_main_queue(),{
        self.presentViewController(self.alertCantSave!,completion: nil);
        });
    }

每次我尝试保存图像时,都会出现以下错误:

Error Domain=NSCocoaErrorDomain Code=-1 "(null)"

有任何想法吗?
我找不到任何解释,在我找到的任何地方,我都找到了类似于我的代码片段(包括Apple的文档:https://developer.apple.com/library/ios/documentation/Photos/Reference/PHPhotoLibrary_Class/)

谢谢.

解决方法

我在寻找完全相同的事情几个小时后才发现这个问题.

玩了一下我能够得到一个对我有用的答案,所以我在这里分享它,以防万一其他人在将来寻找类似的东西.

// Make sure the image is not nil
guard let image = image else {
  // No image here...
  return
}

// Perform changes to the library 
PHPhotoLibrary.sharedPhotoLibrary().performChanges({
  // You only need to create the request,there is no need to define the placeholder 
  // nor to add the asset because swift does not like it when you try to modify the camera roll.
  PHAssetChangeRequest.creationRequestForAssetFromImage(image)

},error in
  // Same as what you have...

})

如果您想要一个如何将图像保存到自定义相册并从自定义相册查询图像的示例,请查看此答案. Save images with PHImageManager

iphone – Objective-C:何时调用self.myObject vs只调用myObject

iphone – Objective-C:何时调用self.myObject vs只调用myObject

在Objective-C中,这一点点语法对我来说有点混乱.

什么时候应该调用self.myObject vs只调用myObject?

这似乎是多余的,但它们不可互换.

有人请赐教吗?

解决方法

如果您只是访问它们,那么没有太多理由使用self.member.如果你正在进行任务,那么如果你做的不仅仅是简单的@property(assign)参数 – 例如,保留,复制等等,那么它可以节省您正在编写的代码.一个例子:

myObject = anotherObject;
self.myObject = anotherObject;

第二个选择将确保您实际上按照您想要的方式分配对象(获取副本,增加保留计数等).它与[self setMyObject:anotherObject]没有什么不同.

由于点符号被编译器替换为消息(类似于x [5]在常规数组工作中变为*(x 5 * sizeof(x))),因此使用点符号时没有开销或额外的效率常规消息.

iphone – 我需要释放一个复制的NSObjects – Objective-c

iphone – 我需要释放一个复制的NSObjects – Objective-c

我想知道我是否需要发布一个复制的NSObject?例如,我只创建一个我复制到数组中的字典:

码:

for (int num = 0; num < [object count]; num++) {
    [dictionary setobject:[object objectAtIndex:num] forKey:@"x"];
    [array addobject:[dictionary copy]];
}

我必须释放字典吗?如果是,什么时候?

谢谢

解决方法

是的你是.在这种情况下,您应该在将其添加到数组后立即释放该副本,因为该数组保留添加到其中的任何内容:

NSDictionary *copied = [dictionary copy];
 [array addobject:copied];
 [copied release];

今天的关于objective-c – PHPhotoLibrary保存gif数据php动图怎么保存的分享已经结束,谢谢您的关注,如果想了解更多关于ios – 是否有编译为Objective-C或与Objective-C二进制兼容的语言 – > Objective-C的Coffeescript、ios – 未能使用PHPhotoLibrary将UIImage保存到相机胶卷、iphone – Objective-C:何时调用self.myObject vs只调用myObject、iphone – 我需要释放一个复制的NSObjects – Objective-c的相关知识,请在本站进行查询。

本文标签: