首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Swift开源项目-单糖

单糖——良品生活指南:家居零食、礼物美妆、海淘购物 感兴趣的朋友可以去 app store 下载 iOS 版下载地址 ---- 说明 本程序仅供学习交流,不可用于任何商业用途。...说明 因为公司使用的是 Objective-C 开发 app,没有使用 swift 来开发,所以决定自己研究 Swift,研究 Swift 的时间不长,对于 Swift 的基本语法有了大致的了解,但是对有些概念和语法还是理解的不深...在本文的最后,有项目的完整源码,喜欢的朋友可以下载下来,如果您感觉我写的代码对您有所帮助,还请在 github 给个 star,非常感谢您的支持!~ 项目截图 ? 单糖 ? 首页 ? 单品 ?...Xcode 8.2.1 Swift 3.0 iOS 8.0 使用到的第三方库: SwiftyJSON - 解析 JSON 数据 SnapKit - 设置约束 Kingfisher - 缓存图片 SVProgressHUD...项目结构 由于刚接触 Swift,以及对 MVVM 的理解的不深,所以没有使用 MVVM 设计模式,项目使用传统的 MVC 设计模式。

2K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    如何把设计图自动转换为iOS代码? 在线等,挺急的!

    尽管作为一名iOS开发人员,我依然对苹果公司提供的开发技术及其发展方向持谨慎和保守态度.前一段时间,尝试使用 Xib来布局视图,遇到一些坑,但是熟悉之后,也确实比原来单纯基于绝对位置的纯代码布局更灵活些...,也更快捷些.在此期间,我研究的一个重要话题就是如何实现Xib之间的嵌套复用,即在一个Xib上如何直接嵌入另一个Xib.乍听起来很简单,但是在亲身实践之后,才发现其难度.我不是来吐槽的,个中曲折不再一一赘述...* 使用方法: 在xib或storyboard中,将某一用于占位的view的 custom class 设为对一个的 component, 则初始化时,会自动使用此component对应的xib文件中的内容去替换对应位置...不为nil,优先使用它. @property (strong, nonatomic) id model; //!...基于masonry的视图模块化方案.在以后的工作和学习中,我会继续使用与完善,以期进一步提高写UI界面的效率.可能尚有不完备之处,欢迎大家共同提出讨论.

    1.4K60

    一步一步,开始上手Mac 开发(一)

    可能你已经意识到了,在iOS中你熟知的许多UIKit控件,就是脱生于Mac OSX 的AppKit,只是把原来在Mac OSX中的NS前缀改为UI前缀而已,因此,多数情况下,你在iOS中经常用的控件基本上...使用initWithNibName:方法从nib(就是我们创建控制器时的Xib)文件中创建了一个新的view Controller。 2....到此,与iOS开发比较,你会发现一些不同,在iOS中需要设置窗口的根控制器(rootViewController),但在OSX中并不存在根控制器,因此需要将view添加到窗口的contentview中。.../.m , MasterViewController.h/.m/.xib 和 MainMenu.xib)直接拖动到这个新组中 同样的方法,我们在ScrayBugsMac组中再创建一个Model组,用来放置后面需要用到的数据模型...通常情况下,table view的数据源和代理都是控制器),这一步可以通过代码设置,也可以在xib图形界面中设置: ?

    4.1K40

    iOS 面试策略之系统框架-UIKit

    这都是要和面试官进行进一步沟通确定的。 假如我们要从零创建一个 label,配置它在页面上的布局,并设置属性值,有以下几种方式。 用 storyboard 或 xib 完成。...storyboard/xib 中搜索起来很不方便,且统一修改多个 UI 控件的属性值不可能,必须一个一个改。在代码中一个工厂模式就可以搞定。 性能影响。...storyboard/xib 在界面渲染上有时会成为性能杀手。例如首页 UI 构造时,代码书写和优化就会比 storyboard 多图层的渲染要好很多。...如果你正在跳槽或者正准备跳槽不妨动动小手,添加一下咱们的交流群931542608来获取一份详细的大厂面试资料为你的跳槽多添一份保障。动画 8.iOS 中实现动画的方式有几种?...很多时候 UI 控件可能在 iPhone 上大小刚好,但在 iPad 上可能偏小,位置也有可能有偏移。

    1.5K20

    微信支付的跨平台架构到底有多牛?

    有可能用户需要去实名,有可能用户要进入一个安全拦截的 WebView,或者是正常拉起收银台。 本文中的名词 CGI 可以理解为一个网络请求,类似HTTP请求。...那么这里的领域知识,就是对支付业务流程的理解。建模方法,我采用了 UML 建模。最终会落地为 Proto 协议供客户端和后台一起使用。 ?...而特殊流程,比如打开小程序,打开 webview, 弹窗这些行为会统一进行处理。 我们在第一步把业务流程抽象为 UseCase。第二步则加入了路由机制。...以支付流程打开 WebView, 小程序为例,减少将近 83% 的代码。更重要的是,这里的特殊流程,是在路由机制里面统一处理的,没有耦合到业务代码中,并且是可复用的。 3....然后零钱页读取了公共 Model 的数据,但是代码无法处理,导致出现了这个让用户恐慌的问题。 除此之外,之前还有有很多发生在安卓,iOS ,像钱包页零钱展示错误。付款的时候。银行卡失效等等问题。

    1.2K10

    微信支付跨平台软件架构

    下一个流程是多变的,有可能用户需要去实名,有可能用户要进入一个安全拦截的 WebView,或者是正常拉起收银台。 那么以往在 iOS、 安卓分开实现时,都没有一个统一的处理机制。...那么这里的领域知识,就是对支付业务流程的理解。建模方法,我采用了 UML 建模。最终会落地为 Proto 协议供客户端和后台一起使用。...而特殊流程,比如打开小程序,打开 webview, 弹窗这些行为会统一进行处理。 我们在第一步把业务流程抽象为 UseCase。第二步则加入了路由机制。...再来看一下,加入路由机制后,对生产力的提升。以支付流程打开 WebView, 小程序为例,减少将近 83% 的代码。...在第三步管理网络请求后,我们的软件架构演进为这样子。 4. 规范数据传递 iOS 和安卓的旧架构都存在信息传递不当和数据污染问题。这个问题最严重。iOS 和 安卓都出过不少 bug。

    2K20

    浅谈移动应用的技术选型|TW洞见

    2 Hybrid Hybird是一种兼顾Native与HTML的开发模式,但根据实现的不同,还可以再细分为两种实现方案: 在Native App中使用WebView加载远端Web资源 使用Cordova...正好之前有个项目就用到了这种方案,为一家业务转型的零售商提供了使用一套基本代码来完成Android和iOS两个平台的App和微信公众号的相关页面。 ? ?...由于前端React也是非常的火,很多React社区的很多产出都可以在React Native上借鉴使用。 React Native对于没有复杂动画效果的一般应用来说不失为一个很好的解决方案。...facebook Androidfacebook iOS 4 原生应用 原生应用的开发真的是让人又爱又恨。爱在于你可以在它上面施展拳脚、使用新特性、实现炫酷的效果。...而恨则在于它跨平台性几乎为零,除了资源外几乎没有可重用的东西,即使是相似架构上的逻辑你也得再实现一遍。 使用原生开发,能够方便地添加动画效果,调用底层硬件,所有的限制仅仅是来自平台的限制。

    1.7K110

    iOS开发笔记(四)

    通过查看99%的用户是 OS Version: iOS 8.4 (12H143) 但是手上的测试机大都升级到iOS 10,剩下的是iOS8.1、8.2和iOS 9; 四处寻找测试机...,终于弄来一个iOS 8.4版本的iphone,真机调试后发下问题: 新版本的手绘礼物,监听了钻石更新的notify,但是没有在dealloc的时候移除,并且测试的时候亦没有测出来。...dealloc的状态下移除监听; Objective-C 用UIStoryboard做UI比编辑xib更方便,但是加载比xib麻烦: UIStoryboard *storyBoard...但是能很准确的识别出 Y 的亮度; 当数据使用 YCbCr 格式时,在同等的条件下,Cb 和 Cr 组件比 Y 组件压缩的更紧密。...总结 iOS开发知识较为零碎,靠死记硬背非常不合理; 像本文的.xcconfig相关的知识,就可以整合到编译、链接的知识树里面; 生成二维码、查看内购属于脑袋想一想就知道,需要二维码->二维码是链接

    1.2K70

    错误——持续更新

    解决:软件无法解决, 只能升级xcode的SDK或者ipad降级 Your account already has a valid ios distribution certificate  :   你的账户已经有一个有效的...原因:使用KVC赋值时出现的错误,可能没有age1这个key 使用xcode6.1创建的项目, 添加新浪SDK,运行[WeiboSDK registerApp:kAppKey];这一步崩溃,抛出以下...我的设备插上耳机便可以用了 webView无法加载 Error Domain=WebKitErrorDomain Code=101 "The URL can’t be shown" UserInfo...解决方法: 在项目导航栏搜索Info.plist文件,如下图 找到第三方的info.plist文件,如ShareSDK中的腾讯Bundle文件下的Info.plist文件。...详情:App Transport Security (ATS) 新特性要求App内访问的网络必须使用HTTPS协议。 但是现在公司的项目使用的是HTTP协议,使用私有加密方式保证数据安全。

    1.8K21

    Shazam地理位置漏洞分析:单击链接即可窃取用户的准确位置

    漏洞概述 近期,研究人员在流行的Shazam应用程序中发现了一个漏洞。在该漏洞的帮助下,攻击者只需单击一个链接就可以窃取用户的精确位置!...目前,受该漏洞影响的用户数量已经超过了一个亿,攻击者只需要通过单击链接即可访问受应用程序权限保护的设备功能。实际上,如果攻击者更聪明的话,这个漏洞也可以被转换为零点击漏洞。...但不幸的是,苹果和谷歌拒绝为这个漏洞提供任何的漏洞奖励,不过大家不用担心,因为问题已经解决了… 该漏洞同时影响了Android和iOS设备,并且已被标记为了CVE-2019-8791和CVE-2019-...漏洞分析 Shazam在整个应用程序中的功能导航部分使用了DeepLink技术,但是在对该应用程序进行分析的过程中研究人员发现在导出某个DeepLink(负责在webview中加载网站)时并没有对其参数进行验证...这个webview包含一些JavaScript接口,允许内容与Android&iOS API进行通信,从而可以提取特定的设备信息以及用户最后已知的精确位置。

    70110

    iOS-屏幕适配基本概念

    iOS设备的分辨率和尺寸(参考The Ultimate Guide To iPhone Resolutions) 分辨率 点(point): 开发过程中,所有基于坐标系的绘制都以point为单位,point...iOS 开发中,所有控件的坐标以及控件大小都是以点为单位的,假如我在屏幕上需要展示一张 20 * 20 (单位:point)大小的图片,那么设计师应该怎么给我图呢?...这样屏幕越大,在垂直方向上可以显示更多内容,发挥大屏幕的优势 关于xib、storyboard、代码 xib和StoryBoard xib:每个viewcontroller对应单独的xib,可以更加方便单独管理...,项目也方便多人一起开发,改动视图方便,不用全局改动 StoryBoard:StoryBoard是一个包含了多个xib的文件,管理方便,在StoryBoard中不仅可以看到每个 ViewController...跳转只能在代码实现,比较混乱 StoryBoard适合单独开发并且是中小型项目的时候使用 xib和代码区别 xib优缺点 xib可视化,开发速度快,代码量少 合作开发,彼此阅读困难,无法在git上查看历史改动

    44410

    微信支付的架构到底有多牛?

    那么这里的领域知识,就是对支付业务流程的理解。 建模方法,我采用了 UML 建模。最终会落地为 Proto 协议供客户端和后台一起使用。...而特殊流程,比如打开小程序,打开 WebView,弹窗这些行为会统一进行处理。 我们在第一步把业务流程抽象为 UseCase。第二步则加入了路由机制。...以支付流程打开 WebView, 小程序为例,减少将近 83% 的代码。 更重要的是,这里的特殊流程,是在路由机制里面统一处理的,没有耦合到业务代码中,并且是可复用的。...在第三步管理网络请求后,我们的软件架构演进为这样子: 规范数据传递 iOS 和安卓的旧架构都存在信息传递不当和数据污染问题。这个问题最严重。iOS 和 安卓都出过不少 Bug。...然后零钱页读取了公共 Model 的数据,但是代码无法处理,导致出现了这个让用户恐慌的问题。 除此之外,之前还有有很多发生在安卓,iOS ,像钱包页零钱展示错误。付款的时候银行卡失效等等问题。

    89810

    《iOS UI 开发捷径 利用 Interface Builder 高效、优雅地开发 UI》 读书笔记第1章 Interface Bundle 概要第2章 使用 Interface Builder第3

    关联 xib 文件与源文件 关联 xib 文件与 UIView 子类的源文件 新建一个空的xib文件,拖一个UIView上去 新建一个继承自UIView的源文件 选中xib文件里的View,把class...mvc 理解 File's Owner 关联 xib 文件与 UIViewController 子类的源文件 自定义一个 VC 的 View 的两种方法 在 IB 文件中选中 VC 所在的 View,在...Show the Identity inspector 中设置 Class 标签的值为自定义的 View 的类名。...在源文件的 loadView() 方法里设置该 VC 的 View 属性为这个自定义的 View。...第4章 在 Interface Builder 中使用 Auto Layout ---- 在 IB 中使用 Auto Layout 的优缺点 设置约束十分简单 如果约束不恰当,IB 提供很好的实时反馈

    2.5K80

    ​iOS Class Guard github用法、工作原理和安装详解及使用经验总结

    在编译期间内,所有定义在头文件内的symbol都会用对应的生成的不同的符号替换并编译。iOS-Class-Guard也提供了对cocoapod库的混淆。...安装如果没有安装brew 先安装之,在终端内执行这 . 工具的安装目录为/usr/local/bin。...使用--dsym参数,iOS Class Guard会替换提供的dSYM文件内的原符号和混淆符号。...局限性,OC的工作方式决定了这个工具的局限性XIB and Storyboardsios-class-guard处理XIB 和 Storyboard文件的效果很好,但是当使用外部库,且库内包含了IB文件的...使用ipaguard来对程序进行加固 代码加固是进一步保护应用的一种方式,通常通过特定平台来对应用进行加固处理。 这边以ipaguard为例,目前还在免费阶段,想薅羊毛的快快试试。

    32610

    Xcode关于警告AutomaticPreferredMaxLayoutWidth的消除方法

    Xcode关于警告AutomaticPreferredMaxLayoutWidth的消除方法      在iOS开发中,如果使用到了storyboard与xib文件并且使用autolayout进行自动布局...工程中如果兼容的iOS版本为iOS8.0一下,并且使用了多行UILabel控件,往往在autolayout自动布局时会出现上述警告,上述警告的主要原因是在iOS8.0后系统会自动计算多行UILabel控件的理想换行宽度...,iOS8以下则不会,需要开发者手动设置一个确定的值。    ...解决方案如下,找到xib或storyboard中的多行UILabel控件,勾选Explicit属性,设置为一个固定的值,例如0。如下图所示: ?...之后上述警告即可消除,事实上,使用了autolayout后,这个属性并没有任何效果,仅仅为了消除警告,直接设置为0即可。 专注技术,热爱生活,交流技术,也做朋友。 ——珲少

    44830

    微信团队分享:微信支付代码重构带来的移动端软件架构上的思考

    这是这篇文章的主要内容。 对基于 C++ 如何从零到一构建跨平台框架感兴趣的同学,可以看看我在2019 QCon 广州站的演讲 《基于 C++ 构建微信客户端跨平台开发框架》PPT原稿。...有可能用户需要去实名,有可能用户要进入一个安全拦截的 WebView,或者是正常拉起收银台。 注意:本文中的名词 CGI 可以理解为一个网络请求,类似HTTP请求。...而特殊流程,比如打开小程序,打开 webview, 弹窗这些行为会统一进行处理。 我们在第一步把业务流程抽象为 UseCase。第二步则加入了路由机制。...支付后台协议重构 2.0 的核心思想也是围绕着这个路由机制展开。 再来看一下,加入路由机制后,对生产力的提升。以支付流程打开 WebView,、小程序为例,减少将近 83% 的代码。...iOS 和 安卓都出过不少 bug。 首先我们来看看最近现网出现过的问题: 之前 iOS 出现,不少内部同事,外部的用户都在反馈:进行零钱页后,会无故弹空白框。

    1.5K20

    IOS入门之StoryBoard

    概述 在iOS的发展历程中,IOS开发经历了三种主要流派:使用代码手写UI及布局;使用单个xib文件组织viewController或者view;使用StoryBoard来通过单个或很少的几个文件构建全部...,都会方便不少.使用代码也是最为强大的,会有xib或者StoryBoard做不了的事情,但是使用代码最终一定能够完成所要的需求。...XIB 其实IB和xib是从iOS SDK初次面世开始就是捆绑在开发者工具套装内的内容了,而到了Xcode 4之后更被直接集成到了Xcode中成为了IDE的一部分. xib设计的一大目的其实是为了良好的...但是xib最大的问题在于xib中的设置往往并非最终设置,在代码中你将有机会覆盖你在xib文件中进行的UI设计.在不同的地方对同一个属性进行设置,这在之后的维护中将会是噩梦般的存在.因为其实IB还是有所局限的...在 Xcode 7 里,新增加了 Storyboard Reference 控件(虽然是在 iOS 9 新增加的,但 iOS 8 也可用)。

    1.8K70

    虚假应用潜入TOP100:论恶意软件如何逃过检测

    如上图所示,app store上的应用程序描述为葡萄酒。但在打开应用程序时发现了一个不同的内容,与之前提到的网页相似。下载的应用程序与其在应用商店上的描述完全不同。 ?...相应的响应将以Base64编码。如果应用程序ID无效,则响应将返回为空。 ? 如果数据不为空并且可以成功解码,则将使用url在webview中加载。 ?...在ios上,如果响应为空,webview将被隐藏,以便“正常”应用程序可以继续。 ? 在android系统上,如果为空,它只会跳转到本地,应用程序将继续其“正常”(商店批准)的应用程序功能。...然后,攻击者将其“打开”以允许查看应用程序的实际内容。 ? 应用排名 在进行研究时,应用程序只使用webview加载赌博网站,而没有在设备上做任何恶意操作。...合法的应用程序已经更新了两年,而假冒的应用程序在过去六个月里只有两次小的更新,弹出式webview是在第二次更新中植入的。 在中国的iOS应用商店中,似乎有许多假冒的应用已经出现,并跻身前100名。

    1.1K10
    领券