• ios-Swift4.0小程序.zip

    2020-04-27 23:30:59
    使用Swift4.0 的一些新语法
  • 苹果公司在2014年的世界开发者大会(WWDC2014)上推出了一门新的开发语言Swift,截止到目前Swift的版本已经更行到2.2版本了,Swift正在不断的完善,在今年的6月份苹果将推出Swift3.0版本,这将又是一重大更新,苹果...

    苹果公司在2014年的世界开发者大会(WWDC2014)上推出了一门新的开发语言Swift,截止到目前Swift的版本已经更行到2.2版本了,Swift正在不断的完善,在今年的6月份苹果将推出Swift3.0版本,这将又是一重大更新,苹果能否再一次改变世界呢,让我们拭目以待.......

    自从苹果公司推出Swift语言后,许多同学都跃跃欲试,想学习一下苹果新推出的这门语言,但是由于Xcode只能运行在Mac系统上,而Mac电脑又比较贵,导致许多同学不得不放弃尝鲜。

    然而幸运的是,IBM公司推出了网页版的Swift学习工具IBM Swift Sandbox,说是工具也不太准确,因为它只是一个网页,实质是我们在该网页敲代码,提交到IBM的服务器,IBM的服务器把运行结果显示给我们。

    其实IBM公司早就推出了这个功能,只是很少人知道而已。奉上该网页的截图,嗯,还挺好看的。左边是代码区,右边是结果输出区。


    IBM是美国的一家公司,由于某种未知的原因,如果不借助一些工具,我们是无法登上该网站的。所以这里奉上一个工具: 灯笼,这是个压缩包,里面包含Mac版和PC版。

    众所周知,Swift语言是不向下兼容的,有些原来可用的方法或属性有时会在新的Swift版本推出后被废弃掉,比如,标准输出函数以前可以用print()、println(),但是现在只能用print()了。所以学习Swift语言最好用最新的编译器,正好IBM一直采用的是最新的编译器(你可以看到IBM现在采用的是还没正式推出的Swift3.1版本的编译器)来运行我们的程序并把结果输出给我们,如果程序有错误,它还会输出错误信息,便于我们修改。给IBM点个赞吧。

    下面用GIF图来演示一下用IBM Swift Sandbox运行一个小程序。



    好啦,就介绍到这里啦,IBM Swift Sandbox上的一些功能就交给你自己去尝试了,尽情的在PC上学习Swift吧。you will enjoy it!!!
    展开全文
  • 在有一定swift基础的情况下,让我们来做一些小程序练练手,今天来试试做一个简单地天气预报。新建一个工程,命名为Weather,然后上网找一个天气预报的API,百度搜索“天气预报 api”,打开一个网站,如下图:   ...

           在有一定swift基础的情况下,让我们来做一些小程序练练手,今天来试试做一个简单地天气预报。新建一个工程,命名为Weather,然后上网找一个天气预报的API,百度搜索“天气预报 api”,打开一个网站,如下图:

      

    我们最好找json的格式的api,比如这样的



    找到API之后,我们来制作一个用户界面,打开storyboard,加载一个按钮,命名为北京的天气信息:



        在按钮下方加一个text view来呈现天气信息:


           现在添加一个按钮的点击事件,打开ViewController,输入以下代码:

     @IBAction func btnPressed(sender:AnyObject){
        println("Button Clicked")
        }
     
           再回到storyboard中,右键点击,把Touch up inside拖到view controller中可以看到我们刚刚定义的btnPressed,点击关联,效果如下:



    运行看一下效果,点击按钮,显示:


         然后我们来加载天气信息,为了让我们的程序更好,在工程中建立一个playground,targets勾选Weather,建好的playground如图:


       playground中的代码如下:

    var url = NSURL(string: "http://api.k780.com:88/?app=weather.today&weaid=1&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4&format=json")
    var data:NSData = NSData(contentsOfURL: url!, options: NSDataReadingOptions.DataReadingUncached, error: nil)!
    var str = NSString(data: data, encoding: NSUTF8StringEncoding)

        接着我们来解析JSON,使用swift自带的解析工具,代码如下:


    var json: AnyObject! = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.AllowFragments, error: nil)
    
    var weatherInfo: AnyObject? = json?.objectForKey("result")
    var city = weatherInfo?.objectForKey("citynm")

         效果如图:


    可以从右边看到我们得到了Json中的城市信息,补全我们需要的所有信息:

    var city = weatherInfo?.objectForKey("citynm")
    
    var temp = weatherInfo?.objectForKey("temperature")
    
    var day = weatherInfo?.objectForKey("days")

       现在我们在ui中呈现天气信息,把刚才playground中写的部分拷贝,然后在viewcontroller中新建一个方法loadWeather,把代码拷进去,再在viewDid方法中调用loadWeather,最后增加一个IBOutlet与storyboard相关联,方法依旧是拖动,拖动storyboard中的New Referencing Outlet与tv相关联。然后在btnPressed方法中依旧增加loadWeather方法.

        在loadWeather方法中加上信息的显示语句:

     tv?.text = "城市:\(city)\n温度:\(temp)\n日期:\(day)"

    运行一下看看效果,如图:


        虽然显示出来了,但是我们的text是可编辑状态的,在storyboard中勾选Editable,再次运行:



         大功告成,而且现在每次单击按钮,就会重新请求天气情况,大家也来试试吧。

    展开全文
  • 本系列只是一个Swift快速入门的教程,并没有详尽的介绍SwiftSwift也并不是一个简单的编程语言,所以要想详尽的系统的学习Swift,本系列并不适合你,此系列只是让开发者可以快速的用Swift来进行开发。另外学习本...

    1. 本系列说明
    本系列只是一个Swift快速入门的教程,并没有详尽的介绍Swift,Swift也并不是一个简单的编程语言,所以要想详尽的系统的学习Swift,本系列并不适合你,此系列只是让开发者可以快速的用Swift来进行开发。另外学习本系列并不需要obj-c的知识,但是如果你想开发iOS,obj-c是必须要学的,因为Swift并不能很快的替代obj-c。另外本系列基于OS X EI Captitan 10.11.2,Xcode7.2。

    2. Swift介绍
    Swift,苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与Objective-C共同运行于Mac OS和iOS平台,用于搭建基于苹果平台的应用程序。Swift吸收了众多现代编程语言的优点,尽力的提供简洁的编程语言和强大的功能。

    3. 第一个Swift程序
    Swift源文件的第一行可执行的代码就是Swift的程序的入口:

    print("Hello World")

    Swift程序的执行语句可以无须任何符号作为结束,Swift把每行代码作为了一个语句。但是如果在一行写了多个Swift语句则应该用”;”来作为语句的结束符。

    print("Hello");print("World")

    笔者还是建议用”;”来作为语句的结束符,这样可读性更强。

    3. Playground工具介绍

    Playground是一个简单的测试环境,主要是用于快速测试Swift语法功能和验证API功能,并不是用来进行实际开发应用。如果开发者对Swift语法功能不太确定,则可以用Playground来测试代码,其次Playground也可以用来验证某个函数,类的功能。

    首先我们启动Xcode,选中Playground
    这里写图片描述

    接着在Name文本框输入Playground的名字

    这里写图片描述

    Playground保存成功后就会看到下面的编辑界面,左边是编辑界面,当开发者在左边编写代码,定义变量和常量之后,即可在右边是实时的看到变量或常量的值。我们将上面将的代码写进去就会看到,右边显示”Hello World”说明我们的代码没有问题。下面是运行按钮,点击运行按钮,控制台输出Hello World,第一个Swift程序就完成了。
    这里写图片描述

    4. 用swiftc编译Swift程序
    swiftc的命令基本格式是

     swiftc -o <生成文件> <源程序> 

    我们用文本编辑工具(我用的是Notepad+)在里面写上print(“Hello World”),保存在桌面取名为hello.swift
    打开终端程序,进入桌面目录,输入如下命令:

    swiftc -o hello.out hello.swift

    我们会发现桌面生成了hello.out文件,接下来我们执行命令

    ./hello.out

    这个命令会执行当前目录下的hello.out程序,执行该程序会看到输出Hello World

    上述的编译,运行完整过程:
    这里写图片描述

    本篇先到这里,接下来会讲Swift的基本语法。

    展开全文
  • Swift算法小程序

    2017-10-22 19:15:27
    Swift算法小程序 编写一个程序,能交换两个变量的数值 例如: 变量a值为20,变量b值为30,调用函数后,a的值变为30,b 的值变为20 答案: -func swap(a: inout Int , b:inout Int){ let temp = a a = b b = ...

    (1) 编写一个程序,能交换两个变量的数值
    例如: 变量a值为20,变量b值为30,调用函数后,a的值变为30,b 的值变为20

    答案:   -func swap(a: inout Int , b:inout Int){
                let temp = a
                 a = b
                b = temp
            }
            var x = 20 , y = 30
            swap(a:&x , b:&y)
            print(x,y)
    

    (2) 编写一个程序,求1! + 2! + 3! + 4!的和
    要求:使用嵌套定义函数实现

    答案: func getSum(number: Int) -> Int {
        //求某个数阶乘的结果
        func getFactorIal(num: Int) -> Int {
            var sum = 1
            for _ in 1...num {
                sum += 1
            }
            return sum
        }
        var total = 0
        for item in 1...number {
            total += getFactorIal(num: item)
        }
        return total
    }
    print(getSum(number: 3))
    

    (3) 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

    答案:func getFinboNum(num: Int) ->Int{
                if num == 1 || num == 2 {
                 return 1
                }
            return (getFinboNum(num: num - 1) + getFinboNum(num: num - 2))
    }
    for month in 1...10{
        print("\(month):\(getFinboNum(num: month))")
    }

    (4) 打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方

    答案 :for number in 100...999{
        var hunder = number / 100
        var ten = number / 10 % 10
        var num = number % 10
       let sum = pow(Decimal(hunder), 3) + pow(Decimal(ten), 3) +  pow(Decimal(num), 3)
        if sum == Decimal(number){
            print(number)
        }
    }   

    (5) 编写一个程序,要求可以把一个字符串中的每一个字符,如果是大
    写字母变小写字母,如果是小写字母变大写,如果是其他字符不变
    例如: 字符串China23beiJing 经过程序转换为cHINA23BEIjING

    答案:
    /*
     函数,将大写字母变小写,小写字母变大写,其他不变
     */
    func changeCharcter (chNum:Character) -> Character {
        //将字符转成整数
    
        var chStr = String(chNum)   //将字符转成字符串
        var num:UInt32 = 0  //用于接受字符整数值的变量
        for item in chStr.unicodeScalars {
            num = item.value    //循环只执行一次,获取字符的整数的值
    
        }
        /*
         如果是大小写字母,转换数值
         */
        //如果是大写字母
        if num >= 65 && num <= 90 {
            num += 32
        }
            //如果是小写字母
        else if num >= 97 && num <= 122 {
            num -= 32
        }
        /*
         将整数转换为字符
         */
        let newChNum = Character(UnicodeScalar(num)!)
        return newChNum
    
    }
    var str = "China23beiJing "
    var i = 0   //表示偏移量(循环变量初始值)
    while i < str.characters.count {    //循环条件,包含循环变量的终止值
        var str1 = str[str.index(str.startIndex, offsetBy: i)]
    //    str1 = changeCharcter(chNum: str1)
    
        str.replaceSubrange(str.index(str.startIndex, offsetBy:
            i)...str.index(str.startIndex, offsetBy: i),
                               with: String(changeCharcter(chNum: str1)))
        i+=1;   //循环变量值变化
    }
    print(str)
    

    (6) 编写一个程序,要求接收一个数字,程序会将这个数字以二进制方
    式打印,例如:数字10 , 以1010的方式打印出来

    答案 :
        func binaryPrintIntNumber(num : Int) {
    
        var remainderArr:[Int] = []  //int数组,存储余数
        var quotient:Int = num  //表示商的变量,初始值是num
        while quotient > 0 {   //商的值是0
            let remainderNum = quotient % 2 //获取余数的值
            remainderArr.insert(remainderNum, at: 0)    //插入数组
            quotient /= 2   //商变换
        }
        for item in remainderArr {
            print(item, terminator: "")
        }
        print("")
    }
    
    var a = 10
    binaryPrintIntNumber(num: a)
    print(a)
    

    (7) 编写一个程序,判断101-200之间有多少个素数,并输出所有素数

    答案:
        var isPreimNum = true   //判断是否是素数,是就是true不是就是false
    var sum = 0
    for item in 101...200 {     //遍历101到200中的任意数
        for j in 2..<item {     //判断item是不是素数
            if item % j == 0 {
                isPreimNum = false
                break
            }
        }
        if isPreimNum {     //如果是素数
            print(item)     //打印这个素数
            sum += 1
        }
        isPreimNum = true
    
    }
    print(sum)}
    
    

    (8) 编写一个程序,查看1、2、3、4四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

    var sum1 = 0  //定义变量用于记录个数
    
    for hudder in 1...4 {   //百位
        for ten in 1...4 {  //十位
            for num in 1...4 {  //个位
                if hudder != ten && hudder != num && ten != num {
                    print(hudder*100 + ten*10 + num)
                    sum1 += 1   //计算个数
                }
            }
        }
    }
    
    print(sum1)
    展开全文
  • 可在“管理中心-移动应用-应用详情-关联小程序信息”,为通过审核的移动应用发起关联小程序操作。 唤起 App打开下程序他有两种方式: 1,通过App分享小程序卡片 到微信,然后在微信上点击小程序卡片打开小程序,...

    在同一开放平台账号下的移动应用及小程序无需关联即可完成跳转,非同一开放平台账号下的小程序需与移动应用(APP)成功关联后才支持跳转。

    可在“管理中心-移动应用-应用详情-关联小程序信息”,为通过审核的移动应用发起关联小程序操作。

    唤起

    App打开下程序他有两种方式:

    1,通过App分享小程序卡片 到微信,然后在微信上点击小程序卡片打开小程序,这是小程序也可以打开App

    第一步:你需要到微信开放平台 将你的app 关联上你的小程序!
    第二步:你工程中需要导入有 wechatOpenSDK
    第三步: 分享小程序卡片类型
    官方文档:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419317332&token=&lang=zh_CN
    第一种:文字类型分享示例
    SendMessageToWXReq *req = [[SendMessageToWXReq alloc]init];
        req.text = @"分享内容";
        req.bText = YES;
        req.scene = WXSceneSession; // 目前只支持会话形式
        [WXApi sendReq:req];
    
    第二种:App 主动分享小程序卡片:⚠️ 小程序测试版不能分享
    WXMiniProgramObject *wxminiObiect = [WXMiniProgramObject object];
        wxminiObiect.webpageUrl =  webpageUrl; //兼容低版本的网络链接
        wxminiObiect.userName =  userName;//小程序的原始ID
        wxminiObiect.path = path;// 指定打开小程序的某一个页面的URL路径
        wxminiObiect.hdImageData =  hdImageData; //小程序节点高清大图,小于128K
        
        WXMediaMessage *message = [WXMediaMessage message];
        message.title = @"小程序title";
        message.description = @"小程序description";
        message.mediaObject = wxminiObiect;
        message.thumbData = nil; // 兼容旧版本节点的图片,小于32k,新版本优先
        
        SendMessageToWXReq *req = [[SendMessageToWXReq alloc]init];
        req.message = message;
        req.scene = WXSceneSession; // 目前只支持会话
        
        return [WXApi sendReq:req];

    2,通过App主动的调用api 打开小程序,这时候小程序也可以打开App

    官方文档:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=21526646385rK1Bs&token=&lang=zh_CN

     WXLaunchMiniProgramReq *launchMiniProgramReq = [WXLaunchMiniProgramReq object];
        launchMiniProgramReq.userName = @"gh_3413cfa14bae";  //拉起的小程序的原始ID
        launchMiniProgramReq.path = @"pages/index/index";    //拉起小程序页面的可带参路径,不填默认拉起小程序首页
        launchMiniProgramReq.miniProgramType = WXMiniProgramTypeRelease; //拉起小程序的类型
       [WXApi sendReq:launchMiniProgramReq];
    //或者 String appId = "wxd930ea5d5a258f4f"; // 填应用AppId IWXAPI api = WXAPIFactory.createWXAPI(context, appId); WXLaunchMiniProgram.Req req = new WXLaunchMiniProgram.Req(); req.userName = "gh_d43f693ca31f"; // 填小程序原始id req.path = path; //拉起小程序页面的可带参路径,不填默认拉起小程序首页 req.miniprogramType = WXLaunchMiniProgram.Req.MINIPTOGRAM_TYPE_RELEASE; // 可选打开 开发版,体验版和正式版 api.sendReq(req);

    WXMiniProgramTypeRelease 正式版    WXMiniProgramTypeTest 开发版    WXMiniProgramTypePreview 体验版

    回调

    当小程序从 APP 分享消息卡片的场景打开(场景值 1036,APP 分享小程序文档 iOS / Android) 或从 APP 打开的场景打开时(场景值 1069),小程序会获得打开 APP 的能力,此时用户点击按钮可以打开分享该小程序卡片/拉起该小程序的 APP。即小程序不能打开任意 APP,只能 跳回 APP。

    按微信文档中描述,从小程序中跳回App只能通过点击小程序中的按钮方可跳回,如何实现点击按钮跳回App,并携带参数呢,需如下两步

    App端:

    需要创建WXEntryActivty,实现IWXAPIEventHandler接口,重写onResp方法。注意Acitvity需要在Manifest文件中声明 android:exported="true",这样才可以被外部唤起

    public void onResp(BaseResp resp) {
        if (resp.getType() == ConstantsAPI.COMMAND_LAUNCH_WX_MINIPROGRAM) {
            WXLaunchMiniProgram.Resp launchMiniProResp = (WXLaunchMiniProgram.Resp) resp;
            String extraData =launchMiniProResp.extMsg; // 对应下面小程序中的app-parameter字段的value
        }
    }

    小程序端:

    需要将 <button> 组件 open-type 的值设置为 launchApp。如果需要在打开 APP 时向 APP 传递参数,可以设置 app-parameter 为要传递的参数。通过 binderror 可以监听打开 APP 的错误事件。

    <view class='suspension'>
          <button class="server_button" open-type="launchApp" app-parameter="wechat" binderror="launchAppError">打开APP</button>
        </view>

    这样App拿到的内容就是wechat。

    扩展 

    再下一步的需求是多个App跳转一个小程序,再分别返回不同的App;一个App跳转不同的小程序,接受不同的返回内容。

    从App拉起小程序页面的路径是可以带参数的,我们就利用这个参数判断是从那个App跳到小程序的。

    例如:

    名称为a的App跳转路径为:

    "pages/index/index?type=appA"

    名称为b的App跳转路径为:

    "pages/index/index?type=appB"

    小程序端接收参数:

    onLoad: function (options) {
        console.log(options.type); //app传递过来的参数 可以判断a或者b
    },

     

    转载于:https://www.cnblogs.com/joe235/p/11355891.html

    展开全文
  • 每当看到新的编程语言我总是会有相当大的兴趣,是的,Swift 3是一门『新语言』,因为它看起来,怎么都不像过往的 Swift。打开一个老的项目时,发现满目疮痍,基本上能标红的代码全被标红了。先来个截图提提神: 图...
  • 1、小程序缩略图的图片比例是:5:4 2、需要小程序的原始ID: gh_xxxxxxxx 一定是gh开头的 3、需要path:pack-xxxx/xxxxx/xxxxxx 类似这种 4、使用微信分享方法,我这里用的是原生微信分享,没有使用第三方 示例...
  • Swift税率计算项目

    2019-08-05 19:40:53
    今天按照raywenferlich上面的一篇Swift教程敲了一下Swift的代码,基本熟悉了Swift的语法Objective-c的区别,当然要熟悉这个语言还要下很多的功夫时间的,整体来说Swift的上手还是比较快的,这个语言的语法也蛮...
  • Swift4.0源代码最新20180210.函数闭包.playground 11.初始化释放.playground 12.协议protocol.playground 13.类结构体的区别.playground 14.枚举.playground 15.扩展.playground 16.下标.playground 17.泛型....
  • 您想节省时间金钱来构建Swift应用程序吗? Swift应用程序模板允许您使用Xcode构建移动iOS应用程序。 从头开始开发应用程序是一个昂贵且耗时的过程,但是可以负担得起Swift应用程序模板,因为许多代码已经为您...
  • swift小游戏

    2020-05-19 23:30:05
    这是一个关于swift开发的游戏,可供新手开发,下载即可使用
  • iOS APP打开微信小程序

    2020-05-28 15:11:53
    少废话,上步骤: 1.微信开放平台创建应用 2.下载工具包 3.添加微信scheme到白名单中(不然拉不起) 4.代码 a. b. ...主意 username是小程序的原始ID,是以gh开头的,不是以wx开头的。
  • 微信小程序官方文档 是支持小程序之间的互相跳转以及参数传递的,具体说明写在这里。 微信的文档告诉了我们如何传参数,如图 然而问题出在目标小程序如何获取这份数据。仅仅写明在 App.onLauch 或者 App.onShow 中...
  • Swift 语言出来后,可能新的项目直接使用swift来开发,但可能在过程中会遇到一些情况,某些已用OC写好的类或封装好的模块,不想再在swift 中再写一次,或者有一些第三方使用OC写的,没有swift版本,怎么办?那就使用混...
  • 小程序依托微信超过 10 亿的海量用户,它无需安装即可使用的完美用户体验,已经成为商家竞相争夺的大蛋糕,同时,小程序开发快速、容易部署广受程序员的喜爱,作为程序员的我们,还有什么理由不学习小程序开发呢?...
  • 目前开发iOS必学的两门语言就是OC和Swift了,这两门语言目前呈现的趋势是此消彼长。但是为了很好的开发,学好两门语言是十分有必要的。现在我将开始Swift的学习。这是我的第一个Swift程序——Hello World。苹果在...
  • swift-微博小程序Demo

    2020-05-24 23:32:25
    微博小程序Demo
  • A WeChat alternative, written in Swift. 运行环境 Cocoapods 0.39.0 +iOS 8.0+ / Mac OS X 10.9+Xcode 7.2+源码下载:http://code.662p.com/view/13219.html 预览 在终端里面运行 pod install,...
  • IOS SWIFT---初见iOS程序

    2015-03-01 13:36:31
    OSios平台,用于搭建基于苹果平台的应用程序。 相信很多人都对ios的开发充满兴趣,既然苹果公司推出了更简单更容易上手的swift,作为一个对ios开放感兴趣的人自然也要来插一脚了。 这只是个学习日记,...
1 2 3 4 5 ... 20
收藏数 21,751
精华内容 8,700
热门标签