小编Ano*_*rak的帖子

IOS Swift assetForURL错误

我只是想从使用Swift的ios 8中的ALAsset获取图像资源.

我使用SNImagePicker进行多个图像拾取.

使用objective-c我使用:

    for (int i = 0; i < info.count; i++) {
    ALAssetsLibrary *assetLibrary=[[ALAssetsLibrary alloc] init];
    [assetLibrary assetForURL:info[i] resultBlock:^(ALAsset *asset) {
        UIImage *image = [UIImage imageWithCGImage:[asset aspectRatioThumbnail]];
    } failureBlock:^(NSError *error) {     }];
Run Code Online (Sandbox Code Playgroud)

有了swift,我试着这样做:

func imagePicker(imagePicker: SNImagePickerNC!, didFinishPickingWithMediaInfo info: NSMutableArray!){
    var i: Int = Int(0);
    for (i; i < info.count as Int; i++){
        var url: NSURL = info[i] as NSURL
        var assetLibrary: ALAssetsLibrary = ALAssetsLibrary()

        //
        //assetLibrary.assetForURL(NSURL?(), resultBlock: ALAssetsLibraryAssetForURLResultBlock?(), failureBlock: ALAssetsLibraryAccessFailureBlock?())            
        //

        assetLibrary.assetForURL(url, resultBlock: {
            (asset: ALAsset!) in
            if …
Run Code Online (Sandbox Code Playgroud)

ios alassetslibrary swift ios8

5
推荐指数
1
解决办法
2136
查看次数

使用NSURLSession下载大量图像

我创建了一个简单的测试应用程序来学习如何使用NSURLSession.此应用程序必须从Web服务下载图像并将其显示为UITableView.我已经编写了应用程序的第一部分,它从Web服务中读取了一个图像URL列表,现在,我想显示这个列表.

我的疑问是:

鉴于图像列表可能是一个非常长的列表,是否可以NSURLSessionDownloadTask为每个图像创建一个?我想在cellForRowAtIndexPath函数中创建会话并将NSURLSessions存储在NSDictionary中作为IndexPath单元格的关键(并且可能依赖于NSURLCache避免多次下载相同的图像).

其他方案:

我可以看到另外三种解决方案:

  1. 使用GCDdispatch_async

  2. 对NSOperation进行子类化并基本上存储NSOperation我需要下载的任何图像.

  3. 使用像第三方库AFNetwork...但由于它是一个学习目的的应用程序,我更喜欢完全使用我的代码.

如果多个NSURLSession不是一个好的解决方案,我会选择其中一个选项.

您如何看待这种方法?

cocoa-touch ios

2
推荐指数
1
解决办法
1716
查看次数

如何在Swift中使用CoreAudio API

我正在将流媒体音频引擎迁移到swift.我发现很难在swift中使用C Audio API.

我有一个AudioFileStreamOpen api的问题,它需要2个C函数作为参数.我不知道如何使用这个API很快.

AudioFileStreamOpen(self as UnsafePointer<()>, propertyProc, packetProc, kAudioFileMP3Type, audioStreamId)
Run Code Online (Sandbox Code Playgroud)

我为此API定义了如下的回调方法.但我得到编译错误.

func propertyProc(inClientData: UnsafePointer<()>,inFileStreamId: AudioFileStreamID,inPropertyId: AudioFileStreamPropertyID,ioFlags: UnsafePointer<UInt32>) -> Void {
  .....      
    }

func packetProc(inClientData: UnsafePointer<()>,inNumberOfBytes: UInt32,inNumberOfPackets: UInt32, ConstUnsafePointer<()>, inPacketDescriptions: UnsafePointer<AudioStreamPacketDescription>) -> Void {
    .....
}
Run Code Online (Sandbox Code Playgroud)

感谢您在swift中正确定义此C API

编译错误

c core-audio ios swift

2
推荐指数
1
解决办法
3196
查看次数

标签 统计

ios ×3

swift ×2

alassetslibrary ×1

c ×1

cocoa-touch ×1

core-audio ×1

ios8 ×1