Tag: Alphacamp

Swift 3.0类说明—类型方法,单例,DatePicker,枚举,错误处理

主讲人:魏炜 实例方法(实例方法)与类型方法(类型别方法) 类型Mehod与Object-C的Class方法类似 实例方法是被型别的某个实例呼叫的方法 型别方法是定义型别本身呼叫的方法 型别方法的写法: 属性前加关键字static 函式前加关键字class 参考:方法 单例模式 单例模式确保每个指定的类别只存在一个实例对象,并且可以双击访问那个实例。 单例的写法 一样属性前加关键字static&函式前加关键字class init(){}前加private:只有自己可以初始化自己 参考:Singleton 日期 日期←> DateFormatter←>字符串 可以通过DateFormatter转换Date和String .date现在的时间 DateFormatter()生出DateFormatter(.date或.string转换日期和字符串) .datastyle调整显示时间格式 .dataFormat调整时间格式 制作倒数计时器 类别:计时器 用Timer.scheduledTimer(timeInterval:1.0,target:self,选择器:#selector(ViewController.countdown),userInfo:nil,重复:true)实现,每隔一秒,实作countdown github的:git@github.com:dan12411 / HelloDatePicker.git Enum(枚举相同类型的选项) 初衷:避免拼字错误 可加上相关值(关联值) 可加上方法 可加上原始值(记要给型别) 常常搭配Switch使用,系统已知副本,最后不用写default 错误处理(关键字throws,try和catch) 用Enum定义错误(服从错误协议) 加上关键字“ throws”标明错误处理的程序代码 加上关键字“ try”呼叫方法 改写函式内的程式码,例如,用卫抓抓出错误 guard与if..else不同在于,可以把通过条件后的动作,写在大括弧{}外 用do&catch输出错误消息

Swift 3.0类说明—扩展名,GCD,WebView,下载图像,JSON

主讲人:魏炜 延期 可帮整体类别(已知类别)加新的属性或方法 GCD 图片来源:Wei Wei 主执行绪处理UI的工作 两种方式工作模式 sync同步(做完再做下一个) async不同步(同时多工) 所以主执行绪不能放同步的工作,因为会阻挡UI的进行 串行队列与并发队列 更多:Swift的Grand Central Dispatch教程:第1/2部分 dan12411 / HelloGCD 通过在GitHub上创建一个帐户为HelloGCD开发做出贡献。 github.com 网页浏览 显示网页的特定方法:Safari / UIWebView / WKWebView / SFSafariViewController UIWebView / WKWebView连网的顺序:网址-> URL->请求-> WebView 连到非苹果的网页,要设定开起权限 UIWebView:直接拉WebView到故事板 WKWebView:用程式码写WebView,需汇入WebKit,效率比UIWebView好 Safari:连网顺序URL->:Safari iOS 10以上版本:UIApplication.shared.open(URL,选项:[:],completionHandler:无) 以前的版本:UIApplication.shared.openURL(url) SFController:需汇入SafariService,连网顺序URL->产生Controller->推出Controller 介绍UIWebViewDelegate,并使用活动指示器 载入HTML或已经写好的网页 介绍用连结打开其他APP(之后似乎其他老师会在教到) 更多:iOS 9快速上手:搜寻API与SFSafariViewController dan12411 / HelloWebView 通过在GitHub上创建一个帐户为HelloWebView开发做出贡献。 github.com 下载图片 第一种方法(用Data,记得要设定背景下载) 一样用网址产生URL 用共时伫列去下载 […]

Swift 3.0课程笔记— Firebase

演讲人:王敏 Cocoapods的安装 固定版本:pod’Firebase / Database’,’〜> 3.0’再pod安装 如果用pod update会直接更新到最新版!! 火力基地 采用noSQL,以JSON互传资料 强制绑定Analytics服务 CloudKit无法看到其他用户上传的资料 登录Firebase并获取plist文件,不要修改到plist的档名 数据库 定义数据索引:.indexOn,增快搜寻资料速度 每增加一个索引,就需要补充记忆体空间(以空间换取时间) 影响新增,删除的速度(资料树需要调整) 如果没有使用Firebase存储,如何通过由base64EncodedString()上传和下载图片,档案大小限制是10MB 存储 若使用storage,将档案存放在Firebase storage 认证方式 以facebook登录为例 登录developers.facebook和pod’FBSDKLoginKit’,再照说明文件走 连结Facebook&Firebase,输入Facebook应用程序编号&密钥给Firebase 再从Firebase OAuth重新引导URI添加到Facebook应用程序设置中 令牌获得! 再写程式码将使用者使用facebook登入资料上传到Firebase Auth 再写程式码将使用者资讯上传到Firebase数据库 脸书 分享内容功能 初步权限:“ public_profile”,“ email”,“ user_friends”(FB朋友列表只能获取有使该这个App的朋友,并非FB上全部的朋友) 得到大头照: 利用API 利用FBSDKProfilePictureView 记得打开FBSDKProfile.enableUpdates(onAccessTokenChange:true) github的:git@github.com:dan12411 / HelloFirebase.git

Swift 3.0课程笔记—关闭和搜索显示

主讲人:魏炜 关闭 Closure是没有名字的(func)函式 闭包在Swift是一个值,有型别,属参考类型 把函式写成Closure的步骤: 1.把名字删掉,存进一个变数 2.把参数和回传值放进大括号里面,加上关键字“ in” //功能// func addClosure(number1:Int,number2:Int)-> Int { 数字1 +数字2 返回结果 } //关闭// 让addClosure:(Int,Int)-> Int = { (数字1:整数,数字2:整数)->整数 令结果=数字1 +数字2 返回结果 } 闭包当当某函式的参数 闭包当当某函式的回传值 Closure既可回传值,还能把附近的值回传出去 封闭可以跟阵列配合使用 关闭简写步骤 如果已经知道参数跟回传值的型别的话,可以省略closure里的参数和型别 如果closure有回传值,而且程式码是一行的话,可以省略return 可以用$ 0或$ 1…等代表参数 如果closure是最后一个参数的话,可以把closure写在小括号外面 如果closure是唯一一个参数的话,可以省略小括号 ///筛选有文字“ o” 进口基金会 fruitArray.filter({ (水果:字符串)-> Bool in 返回fruit.contains(“ o”) }) ///省略版 fruitArray.filter {$ 0.contains(“ o”)} git@github.com:dan12411 […]

Peter Pan的任务中的通知中心和TableView CRUD

[规格] 利用导航控制器实作2个页面,页面1:显示曾经爱过情人的名字按钮,假设有三个情人(或三只小猪,三部电影)。页面2:显示她(他)的名字,星座,照片。 加入第3个页面。在页面2导航栏的右上角有个“编辑”按钮,点选进入页面3。页面3:使用UIViewController,实作情人的编辑页面,可修改名字和星座。导航栏的右上角有一个完成按钮,点选将返回页面2,并更新页面2的内容。如果从页面2返回页面1,内容也要是修改后的内容。 进阶修改,用tableView完整实作以上功能,并且要可以永久储存并实现CRUD。 [故事板] [备注] 一开始使用程式方式转场,但卡在需要用程式生出必要的bar button,需要再练习。 后来改用segue方式拉,发现自己将线拉到viewcontroller而不是导航控制器上,导致xcode产生警告,要牢记。(图1) 开启相簿以及图片CRUD方式还不熟练,尚未加到程式内,要再加强。 通知传送与接收的关系混乱时,最好还是画个示意图。(图2) viewcontroller的生命周期很难想像,就让每个阶段都印个日志,方便厘清viewcontroller的先后顺序,此会影响通知接不接得到。(图3) 使用UIImagePickerController添加图像CRUD。 [最后] [GitHub] EmberChen / ac-notification-practice ac-notification-practice –交流期间Peter Pan的任务。 github.com