在Xcode中用Swift进行网络服务请求

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
查看查看146 回复回复2 收藏收藏 分享淘帖 转播转播 分享分享 微信
查看: 146|回复: 2
收起左侧

在Xcode中用Swift进行网络服务请求

[复制链接]
swifter 发表于 2016-8-14 21:43:58 | 显示全部楼层 |阅读模式
快来登录
获取优质的苹果资讯内容
收藏热门的iOS等技术干货
拷贝下载Swift Demo源代码
订阅梳理好了的知识点专辑

Xcode集成开发环境是运行于Mac苹果电脑上用于开发Swift应用程序的工具,利用Xcode可以很方便、直观的开发OS X和iOS系统所支持的应用程序。




1、开发环境

  • Mac OS 10.11
  • Xcode 7.3.1





2、用Xcode创建一个Swift项目

在Xcode中用Swift进行网络服务请求 1

在Xcode中用Swift进行网络服务请求 - 敏捷大拇指 - 在Xcode中用Swift进行网络服务请求 1


在Xcode中用Swift进行网络服务请求 2

在Xcode中用Swift进行网络服务请求 - 敏捷大拇指 - 在Xcode中用Swift进行网络服务请求 2


这里选择Single View application,后续可以用[editor]菜单进行调整。




3、添加导航栏

在main.storyboard中选中默认的viewcontroller,然后单击菜单[Editor]->[Embed in]->[Navigation Controller],如下图所示:

在Xcode中用Swift进行网络服务请求 3

在Xcode中用Swift进行网络服务请求 - 敏捷大拇指 - 在Xcode中用Swift进行网络服务请求 3


操作成功后,设计器中就会出现2个有关联的view,如下所示:

在Xcode中用Swift进行网络服务请求 4

在Xcode中用Swift进行网络服务请求 - 敏捷大拇指 - 在Xcode中用Swift进行网络服务请求 4


这时候,我们就可以拖动相关控件到View Controller上。

在Xcode中用Swift进行网络服务请求 5

在Xcode中用Swift进行网络服务请求 - 敏捷大拇指 - 在Xcode中用Swift进行网络服务请求 5


拖放好控件后,可以用xcode将UI上的控件拖放到后台源码中进行前后台关联,如下图:

在Xcode中用Swift进行网络服务请求 6

在Xcode中用Swift进行网络服务请求 - 敏捷大拇指 - 在Xcode中用Swift进行网络服务请求 6


如果遇到无法进行关联,可能是由于UI和后台文件没有正确的关联,或者当前两个文件不匹配。




4、导入第三方库

先下载Alamofire源码包,然后将Alamofire整个文件拖放到上面创建的项目根目录中,然后将Alamofire.xcodeproj拖放到主项目下。

在Xcode中用Swift进行网络服务请求 7

在Xcode中用Swift进行网络服务请求 - 敏捷大拇指 - 在Xcode中用Swift进行网络服务请求 7


在Xcode中用Swift进行网络服务请求 8

在Xcode中用Swift进行网络服务请求 - 敏捷大拇指 - 在Xcode中用Swift进行网络服务请求 8


关联后,可以用command+B j进行编译,看有无错误。

这里用同样的方法导入swiftjson等库。




5、代码逻辑编写

[Swift] 纯文本查看 复制代码
//
//  MyWebViewController.swift
//  swiftapp
//
//  Created by Jackwang on 16/8/12.
//  Copyright © 2016年 Jackwang . All rights reserved.
//

import UIKit
import Alamofire
import SwiftyJSON
import ObjectMapper
import SCLAlertView;

class MyWebViewController: UIViewController {

    @IBOutlet weak var btnReLoad: UIBarButtonItem!
    @IBOutlet weak var btnBack: UIBarButtonItem!
    @IBOutlet weak var btnHome: UIBarButtonItem!
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        
        btnHome.title = "首页";
        
        //https://github.com/Alamofire/Alamofire
        
        Alamofire.request(.GET, "http://192.168.180.159:9888/MicroServiceAPI.ashx", parameters: ["uname": "admin","upwd":"EAS","api":"api.getUsers"])
            .validate()
            .responseJSON { response in
                switch response.result {
                case .Success:
                    print("Validation Successful")
                    if let strJSON = response.result.value {
                        print("JSON: \(strJSON)")
                        
                        //https://github.com/SwiftyJSON/SwiftyJSON
                        let json = JSON(strJSON)
                        print(json["Code"])
                        print(json["IsSuccess"])
                        print(json["Message"])

                        print(json["DTData"][0]["Name"]) //null
                        
                        
                        if json["IsSuccess"].int !=  nil {
                            print("Login Sucess")
                            // Get started
                            SCLAlertView().showInfo("Login Sucess", subTitle: "welcome to app")
                        }
                        if json["DTData"].string !=  nil {
                             SCLAlertView().showInfo("Login data", subTitle: "welcome to app")
                        }
                        //SCLAlertView().showInfo("ok", subTitle: "welcome to app")
                        
                    }
                    
                case .Failure(let error):
                    print(error)
                }
        }

        
        
        
        
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    @IBAction func btnHomeTapped(sender: UIBarButtonItem) {
        
        print("GoHome")
    }

    @IBAction func btnReloadTapped(sender: UIBarButtonItem) {
         print("ReLoad")
    }
}





6、编译运行

首次运行,如果没有配置info.plist,会报错误.这里需要打开info.plist文件,单击[+],然后添加

App Transport Security Settings

在其子项目下设置Allow Arbitrary Loads为YES。

在Xcode中用Swift进行网络服务请求 9

在Xcode中用Swift进行网络服务请求 - 敏捷大拇指 - 在Xcode中用Swift进行网络服务请求 9



  

水平有限,望各位Swift朋友不吝赐教!如果觉得不错,请点击推荐和关注!




作者:isaboy

都看到这里了,就把这篇资料推荐给您的好朋友吧,让他们也感受一下。

回帖是一种美德,也是对楼主发帖的尊重和支持。

*声明:敏捷大拇指是全球最大的Swift开发者社区、苹果粉丝家园、智能移动门户,所载内容仅限于传递更多最新信息,并不意味赞同其观点或证实其描述;内容仅供参考,并非绝对正确的建议。本站不对上述信息的真实性、合法性、完整性做出保证;转载请注明来源并加上本站链接,敏捷大拇指将保留所有法律权益。如有疑问或建议,邮件至marketing@swifthumb.com

*联系:微信公众平台:“swifthumb” / 腾讯微博:@swifthumb / 新浪微博:@swifthumb / 官方QQ一群:343549891(满) / 官方QQ二群:245285613 ,需要报上用户名才会被同意进群,请先注册敏捷大拇指

嗯,不错!期待更多好内容,支持一把:
支持敏捷大拇指,用支付宝支付10.24元 支持敏捷大拇指,用微信支付10.24元

评分

参与人数 1金钱 +10 贡献 +10 专家分 +10 收起 理由
Anewczs + 10 + 10 + 10 32个赞!专家给力!

查看全部评分

智能科技 发表于 2016-8-16 18:27:18 | 显示全部楼层
写得清晰~
采姑娘的小蘑菇 发表于 2016-9-20 15:04:27 | 显示全部楼层
这个教程不赖~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

做任务,领红包。
我要发帖

分享扩散

都看到这里了,就把这资料推荐给您的好朋友吧,让他们也感受一下。
您的每一位朋友访问此永久链接后,您都将获得相应的金钱积分奖励
关闭

站长推荐 上一条 /3 下一条

热门推荐

合作伙伴

Swift小苹果

  • 北京治世天下科技有限公司
  • ©2014-2016 敏捷大拇指
  • 京ICP备14029482号
  • Powered by Discuz! X3.1 Licensed
  • swifthumb Wechat Code
  •   
快速回复 返回顶部 返回列表