小编Pet*_*Pik的帖子

flatMap不返回onCompleted

我创建了下面的函数与多个observable的链接,但无论我做什么它似乎没有调用completed?它只返回以下内容:

(facebookSignInAndFetchData()) -> subscribed
(facebookSignInAndFetchData()) -> Event next(())
Run Code Online (Sandbox Code Playgroud)

即使我debug单独观察他们都会回归completed

这是我的链接功能

func facebookSignInAndFetchData() {


    observerFacebook.flatMap { (provider: FacebookProvider) in
        return provider.login()
        }.flatMap { token in
            return self.loginViewModel.rx_authenticate(token: token)
        }.flatMap {
            return self.loginViewModel.fetchProfileData()
        }.debug().subscribe(onError: { error in

            //Guard unknown ErrorType
            guard let err = error as? AuthError else {
                //Unknown error message
                self.alertHelper.presentAlert(L10n.unknown)
                return
            }

            //error message handling
            switch err {
            case .notLoggedIn:
                print("not logged in")
                break
            default:
                self.alertHelper.presentAlert(err.description)
            }

        }, onCompleted: {
            self.goToInitialController()
        }).addDisposableTo(self.disposeBag)

}
Run Code Online (Sandbox Code Playgroud)

rx_authenticate …

swift rx-swift rx-cocoa

13
推荐指数
1
解决办法
1042
查看次数

将NSArray转换为NSMutableArray Swift

我正在尝试将其转换self.assets NSArrayNSMutableArray并将其添加到picker.selectedAssets其中NSMutableArray.这段代码在swift中会如何?

Objective-C代码

picker.selectedAssets = [NSMutableArray arrayWithArray:self.assets];
Run Code Online (Sandbox Code Playgroud)

objective-c swift

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

facebook解析报名迅速

我一直在努力在swift中创建一个facebook登录/注册功能.我一直在寻找一个教程,但一直找不到任何东西.所以我一直在尝试自己做.它似乎工作,但为什么它不保存我的facebookName,性别和图像在数据库中?它将它保存在模拟器中但不是在我使用ios 8设备时?

我收到此日志消息"用户注册并通过Facebook登录!",并且新用户被添加到解析类,但不是名称,图像和性别......

@IBAction func login(sender: UIButton!) {




    var permissionArray = ["user_about_me", "user_relationships", "user_birthday", "user_location"]

    PFFacebookUtils.initializeFacebook()

    PFFacebookUtils.logInWithPermissions(permissionArray, block:  { (user: PFUser!, error: NSError!) in
        println(user)
        if user == nil {
            println(error.localizedDescription)


        } else {



            if user.isNew {



                var userQuery = PFUser.query()
                userQuery.getObjectInBackgroundWithId(PFUser.currentUser().objectId) {
                    (userObject: PFObject!, error: NSError!) -> Void in


                    var fbRequest = FBRequest.requestForMe()
                    fbRequest.startWithCompletionHandler { (connection: FBRequestConnection!, result:AnyObject!, error: NSError!) in


                        if error == nil {

                            //FACEBOOK DATA IN DICTIONARY
                            var userData = result as NSDictionary
                            var faceBookId = …
Run Code Online (Sandbox Code Playgroud)

iphone facebook ios swift

8
推荐指数
1
解决办法
2897
查看次数

在collectionView中设置最小行间距

我正在尝试使用我的collectionViewController中的swift设置最小行间距,但我似乎无法找到我需要使用的方法.我需要这个以编程方式,因为我需要根据selectedSegmentedIndex动态更改它.如何以编程方式更改最小行间距?

我试图添加UICollectionViewFlowLayout,但不能,因为它是一个UICollectionViewController.

我想我需要使用类似的东西.

collectionView:layout:minimumLineSpacingForSectionAtIndex:
Run Code Online (Sandbox Code Playgroud)

iphone ios uicollectionview swift

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

中心4图像与约束自动布局

我是autolayout的新手,我有点不知道如何将这4个图像集中在所有不同的设备中,就像它在图像上看起来一样.我试图应用自动配置的约束,但它将具有该距离,并且不适合所有设备.所以我的问题是我需要在所有不同的图像上应用哪些约束才能使所有图像以相同的距离居中?

这是我在storyBoard中的单元格的样子:

在此输入图像描述

图像1上约束选项的图像:

在此输入图像描述

模拟器中的图像:

在此输入图像描述

///我的尝试////

在这里你可以看到我添加的约束和结果?

在此输入图像描述

结果:

在此输入图像描述

iphone objective-c ios autolayout swift

8
推荐指数
1
解决办法
2010
查看次数

检查url图像是否存在

我正在尝试使用if语句检查是否存在url图像.但是,当尝试通过错误的图像url测试它时,它会继续返回:

致命错误:在展开Optional值时意外发现nil.

码:

var httpUrl = subJson["image_url"].stringValue
let url = NSURL(string: httpUrl)
let data = NSData(contentsOfURL: url!)

if UIImage(data: data!) != nil {
}
Run Code Online (Sandbox Code Playgroud)

ios swift

8
推荐指数
2
解决办法
5431
查看次数

虚线边框UIImageView swift

我正在尝试在UIImageView上使用CALayer添加虚线边框.我找到了一个方法,但是在swift工作,我怎么能把它转换成swift?o有另一个带有边框的imageView,这将是使用CALayer的最佳解决方案,所以它们看起来相似吗?我怎样才能获得这个

obj-c代码快速?

- (CAShapeLayer *) addDashedBorderWithColor: (CGColorRef) color {
    CAShapeLayer *shapeLayer = [CAShapeLayer layer];

    CGSize frameSize = self.size;

    CGRect shapeRect = CGRectMake(0.0f, 0.0f, frameSize.width, frameSize.height);
    [shapeLayer setBounds:shapeRect];
    [shapeLayer setPosition:CGPointMake( frameSize.width/2,frameSize.height/2)];

    [shapeLayer setFillColor:[[UIColor clearColor] CGColor]];
    [shapeLayer setStrokeColor:color];
    [shapeLayer setLineWidth:5.0f];
    [shapeLayer setLineJoin:kCALineJoinRound];
    [shapeLayer setLineDashPattern:
    [NSArray arrayWithObjects:[NSNumber numberWithInt:10],
    [NSNumber numberWithInt:5],
  nil]];
    UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:shapeRect cornerRadius:15.0];
    [shapeLayer setPath:path.CGPath];

    return shapeLayer;
}
Run Code Online (Sandbox Code Playgroud)

iphone objective-c uiimageview ios swift

7
推荐指数
1
解决办法
7167
查看次数

在数组swift中搜索对象

我正在尝试使用UISearchController创建搜索功能.但是,我似乎无法使其与我的团队对象一起工作.我首先创建了一个包含id,name和shortname的Team Object.然后我从一个url中检索teamData,并将Team Objects添加到一个填充到tableView中的数组中.这个tableView包含一个searchController,它假设过滤数据,但没有任何反应.

阵列

var teamArray = Array<Team>()
var filteredTableData = [String]()
Run Code Online (Sandbox Code Playgroud)

GetTeams功能

func getTeams(url: String) {

    isApiCalling = true
    request(.GET, url, parameters: nil)
        .response { (request, response, data, error) in
            if error == nil {

                let data: AnyObject = data!
                let jsonArray = JSON(data: data as! NSData)
                for (key: String, subJson: JSON) in jsonArray {



                        // Create an object and parse your JSON one by one to append it to your array
                        var newTeamObject = Team(id: subJson["id"].intValue, name: subJson["name"].stringValue, …
Run Code Online (Sandbox Code Playgroud)

uitableview ios swift uisearchcontroller

7
推荐指数
1
解决办法
5253
查看次数

检测何时按下"返回应用程序"

我已经创建了一个函数,它假设处理具有位置的权限,因此如果应用程序没有位置权限,它将关闭.但是,当您按下打开设置并在状态栏中按"返回应用程序"时,该determeinePermission方法不会再次执行.我试过把它添加到viewDidLoad,viewDidAppearviewWillAppear.我能做什么?

func determinePermission() {
    switch CLLocationManager.authorizationStatus() {

    case .Authorized:
        if CLLocationManager.locationServicesEnabled() {
            manager.delegate = self
            manager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters
            manager.startUpdatingLocation()
        }


    case .NotDetermined:
        manager.requestWhenInUseAuthorization()
    case .AuthorizedWhenInUse, .Restricted, .Denied:
        let alertController = UIAlertController(
            title: "Background Location Access Disabled",
            message: "In order to be notified about adorable kittens near you, please open this app's settings and set location access to 'Always'.",
            preferredStyle: .Alert)

        let cancelAction = UIAlertAction(title: "Cancel", style: .Cancel) { (action) in
            exit(0)
        } …
Run Code Online (Sandbox Code Playgroud)

permissions core-location ios swift

7
推荐指数
1
解决办法
1666
查看次数

处理自定义CallOutView swift的选择

我已经创建了一个自定义的callOutView,它似乎工作得很好.但是我在自定义callOut视图上处理点击时遇到问题.我想在选中时推送到特定的viewController.我怎样才能实现这一目标?

下面我添加了我的FBSingleClusterView,这是自定义的MKAnnotationView和bubbleView自定义的callOutView.在我的旁边有一个带有mapView的viewController.

FBSingleClusterView变量

private var hitOutside:Bool = true


var preventDeselection:Bool {
    return !hitOutside
}
Run Code Online (Sandbox Code Playgroud)

FBSingleClusterView方法

override func setSelected(selected: Bool, animated: Bool) {

    let calloutViewAdded = bubbleView?.superview != nil

    if (selected || !selected && hitOutside) {
        super.setSelected(selected, animated: animated)
    }

    self.superview?.bringSubviewToFront(self)

    if (bubbleView == nil) {
        bubbleView = BubbleView()
    }

    if (self.selected && !calloutViewAdded) {
        bubbleView?.clipsToBounds = true
        bubbleView?.layer.masksToBounds = true
        self.addSubview(bubbleView!)

        let discView = UIImageView()
        discView.contentMode = UIViewContentMode.Center
        discView.image = UIImage()
        discView.image = UIImage(named: "Disclosure")

        bubbleView?.contentView.addSubview(discView) …
Run Code Online (Sandbox Code Playgroud)

mkmapview ios swift

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