小编Roh*_*nap的帖子

Instagram上的iOS共享:无法保存文件,因为不支持指定的URL类型

我有以下代码在swift 3 iOS 10.1上分享Instagram上的图像:

func shareOnInstagram(_ photo: UIImage, text: String?) {
    let instagramUrl = URL(string: "instagram://app")!
    if UIApplication.shared.canOpenURL(instagramUrl) {
        let imageData = UIImageJPEGRepresentation(photo, 1.0)!
        let captionString = text ?? ""

        let writePath = URL(string: NSTemporaryDirectory())!.appendingPathComponent("instagram.igo")
        do {
            try imageData.write(to: writePath)
            let documentsInteractionsController = UIDocumentInteractionController(url: writePath)
            documentsInteractionsController.delegate = self
            documentsInteractionsController.uti = "com.instagram.exlusivegram"
            documentsInteractionsController.annotation = ["InstagramCaption": captionString]
            documentsInteractionsController.presentOpenInMenu(from: CGRect.zero, in: self.view, animated: true)
        }catch {
            return
        }
    }else {
        let alertController = UIAlertController(title: "Install Instagram", message: "You need Instagram app installed to …
Run Code Online (Sandbox Code Playgroud)

ios swift swift3

12
推荐指数
1
解决办法
4808
查看次数

将Swift pod导入Objective-C项目时未找到模块错误

我有一个用Objective-C编写的现有项目.我想在该项目中使用位于Swift 的Daniel GindiiOS Charts库.我怎样才能做到这一点?

将swift框架导入到objective-c项目中是相关的,但在我的情况下,我通过Cocoapods 按照此处的说明安装它.

在那个问题中,他至少能够导入标题,但在我的情况下,我无法.

第1步:创建Objective-C单视图项目.

第2步:创建Podfile并添加以下行 -

use_frameworks!
pod 'Charts'
Run Code Online (Sandbox Code Playgroud)

第3步:安装pod

步骤4:尝试在ViewController.h中导入图表,@import Charts但此时会出错.错误是 - Module Charts not found

objective-c ios-frameworks swift ios-library ios-charts

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

AVPlayer不播放音频 - iOS 9,Objective - C

我正在尝试从我的应用程序中的URL播放音频.一切都在iOS 8(模拟器和物理设备)中按预期发生.对于iOS 9,它可以在模拟器中工作,但在设备上,音频根本无法播放.流式传输出现,如果我点击播放,进度条也会显示音频正在加载和播放,但声音没有出现.此问题发生在iOS 9物理设备中.它适用于iOS 8物理设备.

我创建了一个简单的按钮.单击按钮,将加载AVPlayerViewController,并使用给定的URL初始化AVPlayer.代码如下:

#import "ViewController.h"
#import <AVKit/AVKit.h>
#import <AVFoundation/AVFoundation.h>


@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
- (IBAction)playAudio:(id)sender {
    NSURL *url = [NSURL URLWithString:@"https://path/to/my.mp3"];
    [self performSegueWithIdentifier:@"playSegue" sender:url];
}

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    AVPlayerViewController *viewController = (AVPlayerViewController *)segue.destinationViewController;
    viewController.player = [AVPlayer playerWithURL:(NSURL *)sender];
}

@end
Run Code Online (Sandbox Code Playgroud)

objective-c avplayer ios9 xcode7 avplayerviewcontroller

7
推荐指数
2
解决办法
6176
查看次数

使用参数编码JSONEncoding.default时请求超时

我正在使用Alamofire在我的应用程序中执行所有与网络相关的请求.我在get请求中将参数编码为JSON时遇到问题.

根据我的要求:

 Alamofire.request(url, method: .get, parameters: params, encoding: JSONEncoding.default)
 .responseJSON(completionHandler: { (response) in
     switch response.result {
     case .success(let retrivedResult):
         print(retrivedResult)
//         success(brandTags)
         break
     case .failure(let errorGiven):
         print(errorGiven)
         print(String(data: response.data!, encoding: String.Encoding.utf8) ?? "")
         failure(APICaller.parseErrorAndGiveMessage(givenError: errorGiven as NSError))
         break
     }
 })
Run Code Online (Sandbox Code Playgroud)

当我按照上面对参数进行编码时JSONEncoding.default,请求总是在我的日志中超时:

2016-12-27 12:22:41.425948 xyz[5140:133008] [] nw_endpoint_flow_service_writes [2.1 35.164.98.40:80 ready socket-flow (satisfied)] Write request has 4294967295 frame count, 0 byte count
2016-12-27 12:23:41.485534 xyz[5140:133041] [] nw_endpoint_flow_service_writes [2.1 35.164.98.40:80 ready socket-flow (satisfied)] Write request has 4294967295 frame count, 0 byte …
Run Code Online (Sandbox Code Playgroud)

ios swift alamofire

6
推荐指数
1
解决办法
1378
查看次数

Facebook登录集成未捕获异常"无法连接到主机"

我正在尝试使用YouTube上提供的PacketCode教程来学习facebook集成.代码在我的localhost上工作正常(即使通过登录到facebook进行测试).但是,当我尝试在Hostinger.in免费主机上运行代码时,它显示以下错误:

致命错误:未捕获的异常'Facebook\FacebookSDKException',消息'无法连接到主机'/home/u315632576/public_html/fblogin-basic-master/lib/Facebook/HttpClients/FacebookCurlHttpClient.php:142堆栈跟踪:#0 /home/u315632576/public_html/fblogin-basic-master/lib/Facebook/FacebookRequest.php(248):Facebook\HttpClients\FacebookCurlHttpClient-> send(' https://graph.f ...','GET',数组)#1 /home/u315632576/public_html/fblogin-basic-master/lib/Facebook/FacebookRedirectLoginHelper.php(146):Facebook\FacebookRequest-> execute()#2/home/u315632576/public_html/fblogin-basic-master /index.php(54):在第142行的/home/u315632576/public_html/fblogin-basic-master/lib/Facebook/HttpClients/FacebookCurlHttpClient.php中投放的Facebook\FacebookRedirectLoginHelper-> getSessionFromRedirect()#3 {main}

在此之后,我尝试通过在其付费托管服务器上请求付费主机所有者来运行此代码,但代码仍能正常工作.那么Hostinger.in免费主机服务器会出现什么问题呢?

代码是:

/* INCLUSION OF LIBRARY FILEs*/
    require_once( 'lib/Facebook/FacebookSession.php');
    require_once( 'lib/Facebook/FacebookRequest.php' );
    require_once( 'lib/Facebook/FacebookResponse.php' );
    require_once( 'lib/Facebook/FacebookSDKException.php' );
    require_once( 'lib/Facebook/FacebookRequestException.php' );
    require_once( 'lib/Facebook/FacebookRedirectLoginHelper.php');
    require_once( 'lib/Facebook/FacebookAuthorizationException.php' );
    require_once( 'lib/Facebook/GraphObject.php' );
    require_once( 'lib/Facebook/GraphUser.php' );
    require_once( 'lib/Facebook/GraphSessionInfo.php' );
    require_once( 'lib/Facebook/Entities/AccessToken.php');
    require_once( 'lib/Facebook/HttpClients/FacebookCurl.php' );
    require_once( 'lib/Facebook/HttpClients/FacebookHttpable.php');
    require_once( 'lib/Facebook/HttpClients/FacebookCurlHttpClient.php');

/* USE NAMESPACES */

    use Facebook\FacebookSession;
    use Facebook\FacebookRedirectLoginHelper;
    use Facebook\FacebookRequest;
    use Facebook\FacebookResponse;
    use Facebook\FacebookSDKException;
    use Facebook\FacebookRequestException;
    use Facebook\FacebookAuthorizationException;
    use Facebook\GraphObject;
    use Facebook\GraphUser;
    use Facebook\GraphSessionInfo;
    use …
Run Code Online (Sandbox Code Playgroud)

webserver facebook web-hosting facebook-php-sdk facebook-apps

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

在应用启动时UITabBarController选择大于3的索引不起作用

在应用程序启动时,我将UITabBarController作为根视图控制器.对于此标签栏,我有7个ViewControllers.AppDelegate.swift在方法内部application(application:didFinishLaunchingWithOptions:),如果我做了以下,它可以正常工作:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        // Override point for customization after application launch.
        self.tabBarController = self.window?.rootViewController as! UITabBarController
        self.tabBarController.selectedIndex = 2

        return true
    } 
Run Code Online (Sandbox Code Playgroud)

这非常有效,并且在启动应用程序时会选择选项卡栏中的第三个项目.

但是,当我想选择任何已经在更多导航控制器下的项目(这意味着超过3的任何索引)时,self.tabBarController.selectedIndex = 5根本不起作用.在应用程序启动完成后,所提到的语句在任何部分都有效,即,如果我self.tabBarController.selectedIndex = 5在第viewDidAppear一个ViewController中执行,它可以工作; 但它在应用程序启动时不起作用,即在application(application:didFinishLaunchingWithOptions:).启动发生后,标签栏选定项保持默认状态.moreNavigationController在应用程序启动时,我可以将所选索引更改为超出3(在此之下)的方式是什么?

uitabbarcontroller ios swift swift2

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