Tag: 开发

Xcode iOS Xcode无线部署

当我们使用Xcode进行应用程序开发时,通常将我们的iOS设备绑定到Mac上以部署应用程序,但是Xcode 9引入了“无线部署-调试”,这份5分钟的指南将帮助您进行设置。 切换到无线。 Xcode 9+ IDE 苹果系统 无线网络 iOS 10+设备 从finder或Xcode最近的项目中打开您的Project_Name.xcodeproj文件。 选择主project_name,然后一般检查是否有任何错误或警告。 将iPhone或iPad连接到Mac,然后按“信任此计算机”。 无线部署设备列表 检查“设备”列表,其中将显示所有可用于运行的设备和模拟器。 当您的iOS设备显示时,您可以选择窗口 -> 设备和模拟器 ,这将使显示成为一个新的弹出窗口。 无线部署位置 在选择设备屏幕中选择iOS设备 。 选中通过网络连接选项。 就是这样,除非您想为不支持无线充电的iOS设备充电,否则就不会再打乱电线了。 应用程序设备窗口 通过电缆断开iOS设备的连接,现在在Xcode设备选择屏幕中,它将在设备名称旁边显示一个网络图标。 注意:要使无线部署正常工作,工作站和iOS设备都应通过无线路由器或移动热点连接在同一网络上。 设备列表成功 最初发布在 kautilya.design上 。

Swift教程:如何在Interface Builder中使用AutoLayout在水平方向上配置NSScrollView(MacOS X,Swift 4.2)

本文最初发布在 http://popcornomnom.com/ 你好! 不久前,我已经开始为MacOS编写应用程序(我具有IOS开发背景),并且遇到了这样一个问题,即我的问题大部分答案是: 已过时(超过3年前的答案,因此某些功能已被弃用) (关于目标C的一些答案让我的“笨拙”的眼睛有点痛苦), 答案适用于iOS,而不适用于OS X 有时找到所需答案的难度比应该的要难。 因此,我决定开始编写循序渐进的快速教程(格式为问题解答的简单教程)。 问题 内容不适合应用程序窗口,并被视图控制器剪切。 解 要解决此问题,您需要向视图中添加约束以达到内容的动态宽度和高度。 好的,让我们开始吧! 步骤1-3。 (步骤1-在下面的图像上)首先将NSScrollView拖动到ViewController。 然后在“属性检查器”的左侧面板中,选择(2)“边框类型” —无,然后选择(3)取消选中“绘制背景”。 步骤4。 之后,添加与超级视图相关的顶部/底部/前导/尾随约束。 我将最高约束设置为20,因为我的NSWindow“完整内容视图” = true。 第五步 然后添加您的内容视图(在我的情况下,这是2个由NSStackView包装的标签)。 第六步 接下来,我们向您的contentView添加顶部,顶部,尾部约束,并向底部添加两个底部约束。 我将所有常量设置为24。 步骤7–8。 然后(7)将第一个底部偏移关系更改为小于或等于(≤) ,并将优先级设置为490 ,(8)将第二个底部偏移关系设置为 – 大于或等于(≥) , 优先级为510 。 步骤9。 (9)除此之外,我还添加了一个最小的contentView宽度500( 宽度常数 = 500 , 关系大于或等于 )。 步骤10-11。 对于scrollView的documentView,添加顶部,顶部,两个尾部和两个底部约束。 (10)将第一尾随偏移关系设置为小于或等于 ,并将优先级设置为510 ,对于第二关系 – 大于或等于 ,将优先级设置为490 。 […]

使用Swift进行iOS开发的8个优势

长期以来,Objective-C是用于创建OSX和iOS应用程序的主要编程语言。 从根本上讲,Objective-C是C的超集,具有附加的面向对象功能和动态运行时。 2014年,Apple引入了一种名为Swift的新编程语言,该语言被称为“不带C的Objective-C”。 Swift快速,安全,现代化,并在开发中实现了一定程度的交互性。 它包含许多特性,例如闭包,泛型和类型推断,这些特性使其更易于使用,从而简化了Objective-C中使用的通用模式。 它结合了C和Objective-C的功能,而没有直接的内置C兼容性以及随之而来的所有约束。 在Cocoa和Cocoa Touch的支持下,Swift彻底重新定义了我们对Apple产品移动应用程序开发的理解。 Swift与Objective-C 在Swift的大揭秘之后,开发界引起了很多惊喜和困惑,因为苹果公司声称这种iOS编码语言要比其前身更好。 因此,Swift成为许多组织讨论的中心。 自最初发布以来,它已被证明是一种整体上更为智能的编程语言,可以在iOS应用开发人员,品牌和最终用户自身之间建立更直接和有意义的联系。 我们概述了为下一个移动项目选择Swift而不是Objective-C的8个主要优点: 可读性 选择Swift的第一优势可以说是因为它的语法简洁,这使得它更易于读写。 在Swift上实现一个选项所需的代码行数量比Objective-C少得多。 这样做的原因是因为Swift放弃了许多旧式约定,例如在if / else语句内包围条件表达式的分号到结束行或括号。 另一个主要变化是,方法调用不会彼此放在一起,从而导致括号混乱。 相反,Swift中的方法和函数调用使用括号内的逗号分隔参数列表。 结果,该代码使用简化的语法更加简洁。 Swift代码更类似于普通英语,这使编写代码更加自然,同时使开发人员可以花费更少的时间查找有问题的代码。 这种可读性还使来自JavaScript,Java,Python,C#和C ++的现有程序员更容易将Swift纳入其工具链。 保养 没有C先发展,Objective-C不可能发展。 相反,Swift没有这些依赖项,这使得维护起来容易得多。 C要求程序员维护两个代码文件,以缩短代码的构建时间和效率,这也可以延续到Objective-C。 但是,Swift放弃了这两个文件的要求,将Objective-C标头(.h)和实现文件(.m)组合到一个代码文件(.swift)中。 在Objective-C中,您必须手动在文件之间同步方法名称和注释。 使用Swift时,程序员可以花更多时间创建应用程序逻辑,并提高其代码,注释和受支持功能的质量。 更安全的平台 在竞争激烈的移动应用程序市场中,开发安全的应用程序应该是当务之急。 Swift的语法和语言构造排除了Objective-C中可能出现的几种错误。 这种稳定性意味着将减少崩溃和出现问题行为的情况。 它不会阻止程序员编写错误的代码,而是会减少犯错误的可能性。 这在开发过程中增加了额外的质量控制层。 Swift会使用nil代码,并在程序员编写错误代码时生成编译器错误。 使用Swift,您可以在编写代码时编译并修复错误,而Objective-C则无法实现。 因此,在进行错误测试时,Swift比Objective-C更好,更快地工作。 所有这些使我们有理由将Swift视为一种安全的编程语言。 更少的代码和更少的遗产 使用Objective-C,存在许多导致应用程序崩溃的问题。 Swift提供的代码不太容易出错,因为它对操作文本字符串和数据提供了内联支持。 此外,类不分为两部分; 接口和实现。 这样可以将项目中的文件数量减少一半,从而使处理起来更加容易。 在编写重复性语句或引起字符串操作时,Swift最终需要较少的编码工作。 使用Objective-C时,您需要组合两个字符串,这会使它很长。 使用Swift,您只需要添加’+’符号即可连接两个字符串。 速度 Swift在开发过程中还提供了多种速度优势,从而节省了成本。 例如,复杂对象排序的运行速度比Python中相同算法的实现快3.9倍。 这也比Objective-C好,后者比Python版本快2.8倍。 […]

如何在iOS上设置默认浏览器

在这篇博客文章中,我将向您展示一个有用的hack,我们最近发现它可以在iOS上设置您的默认浏览器,以及如何使用它以及通过此hack可以实现的其他出色功能。 长话短说:您必须覆盖iOS应用程序中的http和https url方案。 然后,用户必须在“内容和隐私限制”中关闭Safari。 基本上就是这样。 😄 如果您想确切地知道如何做到这一点,请遵循示例应用程序教程: 什么是URL方案? URL方案用于通过URL启动系统应用程序和第三方应用程序。 例如,与某人进行面对面交流,您可以在浏览器中输入facetime:// + 123456789。 此外,您可以创建自己的海关URL方案,以便其他应用程序可以通过这些URL启动您的应用程序。 供您参考,这里是各种应用程序的URL方案的列表: iOS应用URL方案名称的始终更新列表 如果您曾经自定义应用程序图标或使用过Workflow,那么您可能知道URL方案的重要性…… ios.gadgethacks.com 怎么使用呢? 创建一个新的Xcode iOS项目,选择“单一视图应用程序”,输入一个名称(例如URL Schemes Sample)并继续。 然后: 转到项目设置 ,选择应用程序的目标 ,然后单击顶部的“ 信息”部分。 搜索“ URL类型”部分,然后添加一个条目。 添加一个标识符 (最简单的方法是使用包标识符),添加要覆盖的URL方案 (在我们的示例中为http ),并将角色设置为Viewer 。 对URL Scheme https重复步骤2和3。 5.打开您的AppDelegate.swift并添加以下功能: 可以覆盖URL方案。 如果要这样做,则必须覆盖以下URL方案: pcast,itms-pcast,itms-pcast,podcast,itms-podcast和itms-podcast 只需按照本教程的步骤2和3进行操作即可。 此外,用户必须在“内容和隐私限制”设置中关闭Podcast应用。 对于所有播客应用而言,这种黑客可能会很有趣。 每当有人单击播客链接时,他们的应用程序就会打开,而不是内置的Apple Podcast应用程序。 这是一个简短的演示: iTunes商店 也可以覆盖iTunes Store URL方案。 这些是: itms和itmss 但是,在这种情况下,我看不到可以使用此hack的好用例。 这是一个安全问题。 […]

在设备上安装iOS测试版本

本简短说明描述了如何在Xcode版本10.1(10B61)中开发的iOS应用程序安装到要用于测试的iOS设备上。 请注意,您可以改为使用Xcode将应用程序安装到目标设备上,但这并不总是一种选择。 例如,如果您想在同事的设备上安装您的应用,而您没有物理访问权限,则将无法执行此操作。 转到Apple Developer网站。 在“设备”部分中添加您iOS设备的UDID。 从几个月前开始,您现在需要使用Apple Configurator 2应用程序来获取设备的UDID。 在Xcode中找到您一直在使用的开发人员证书来对您的应用程序进行签名。 记下其名称-创建配置文件时将需要它的名称。 添加与您的应用程序包标识符匹配的应用程序标识符。 例如,如果您的捆绑包标识符是“ com.mystartup.myapp”,则将其用作应用程序标识符的ID值。 创建一个配置文件。 这会将开发人员证书链接到供应配置文件。 选择“ iOS应用程序开发”类型。 选择您刚刚创建的应用程序标识符。 选择您的开发人员证书。 选择您希望针对应用程序安装的设备UDID。 给配置文件命名。 下载配置文件,然后双击它以使其在Xcode中可用。 在Xcode中,将配置文件与您的应用程序项目相关联。 禁用自动代码签名管理。 为所有签名配置选择已安装的配置文件-关闭自动代码签名后,这些文件就会出现。 生成应用。 选择产品/归档。 创建存档后,选择新的存档,然后单击“分发应用程序”。 选择开发作为开发方法。 如果要定位到特定的iOS设备,请使用App Thinning。 如果选择此选项,将减小输出文件的整体文件大小。 选择用于签署应用程序的开发人员证书(在上面已注明其名称)以及最近安装的配置文件。 创建完成后,选择一个位置来保存您的构建。 在iOS设备上安装应用程序所需的生成文件的扩展名为.ipa。 在目标设备上安装该应用程序。 安装Apple Configurator 2。 将iOS设备连接到计算机。 将.ipa文件拖放到用户界面中的设备上以进行安装。 如果一切都按计划进行,则应在轻按时启动该应用。 否则,您将遇到问题。

警卫声明迅速

该保护声明已在Swift 2.0中实现。 从那时起,有很多关于它的用法的谣言。 保护不是通用机制。 这篇文章想澄清其中一些内容,以帮助您了解何时以及何时不使用此语句。 守卫的基础 首先,让我们澄清一下为什么发明了防护罩。 让我们看一下警卫声明的形式。 警卫条件其他{ 陈述 } 老实说,它看起来很像“ if-else-statement”版本,没有if部分。 也许这就是最常见的误解的原因,因为后卫只是if陈述的反向版本。 这会使后卫变得毫无用处,因为我们可以用经典的if语句来否定条件。 那么,为什么苹果发明了警卫呢? 根据Apple的文档: 如果不满足一个或多个条件,则使用保护语句将程序控制权移出作用域。 用两个词概括他们的主要意图: 提前退出

Alamofire Multipart与参数:从UIImagePickerController Swift上传图像

第一。 基本上,上传多部分表单UIImagePickerController时,您将需要来自图像选择器的数据文件。 首先,您将需要UIImagePickerControllerDelegate和UINavigationControllerDelegate并在info.plist中添加Privacy-Photo Library使用说明。 在调用函数imagePickerController之前,需要在函数内部添加委托UIImagePickerController。 例如我有功能handleProfilePicker: func handleProfilePicker(){ 让选择器= UIImagePickerController() picker.delegate =自我 picker.allowsEditing = true ….(您的Picker颜色的NavigationBar的自定义代码) self.present(picker,animated:true,completion:nil) } 描述委托后,您可以调用函数imagePickerController didFinishPickingMediaWithInfo。 此功能是从照片库中捕获文件图像。 func imagePickerController(__ picker:UIImagePickerController,didFinishPickingMediaWithInfo信息:[String:任何]){ } 当我完成从选择器中选择的图像以处理值编辑图像和未编辑图像时,我具有自定义代码,这是: func imagePickerController(__ picker:UIImagePickerController,didFinishPickingMediaWithInfo信息:[String:任何]){ var selectedImage:UIImage? 如果让editedImage = info [“ UIImagePickerControllerEditedImage”]为? UIImage { selectedImage = editedImage }如果让originalImage = info [“ UIImagePickerControllerOriginalImage”]设置为其他? UIImage { selectedImage = originalImage } 如果让selectedImages = selectedImage […]

RxSwift#3 —运算符

运算符运算符。 操作员可观察到벤트들을이준처리할준다준다。 가볍게运营商가무엇인지살펴보면서보시작해 操作员Rx는기본이다。 运算符사용해Observable벤트를벤트를벤트를리하여있다。 运营商는로그룹으다 过滤算子 转换运算符 合并运算符 过滤运算符.next随即添加。 。过滤 벤트만이벤트만다 .distinctUntilChanged 값이이어질막아준다 可观察的변형하는运算符 。地图() 이벤트를다른이벤트로변형 可观察的Swift map 같다。 .scan() 있고가지있고있고있고벤트를있있다。。 벤트이벤트의원본이벤트다 초기값을지정해야다 룬다룬运算符들을제를를보살펴 筛选器용해文字n아닐져온져온져온져온 节流阀사용해0.5장장장이최신사용한다 文字를SearchRequest로변환한다 이데식으흐름터를터를터를있습니있습니다있습니。 [4장:RxSwift용한이용한MVVM패턴] RxSwift#4 — RxSwift용한이VM MVVM패턴 在MVVM和RxSwift中进行比较。 medium.com

基础锁

基金会框架框架和NSLock框架。 RxSwift已在NSRecursiveLock中被删除,在RecursiveLock中被删除。 释放死锁,然后下载线程锁,然后使用NSLock释放GCD同步,然后释放RxSwift的锁,然后解锁。 在NSLock上进行下载。 NSLock.h에는1개의协议과4개의类提供가다。 있는协议있는NSLocking이고, 类别:NSLock,NSRecursiveLock,NSConditionLock,NSCondition。 NSLock모든类别가协议가다。 锁定객체하나의Thread Thread하는데정하는데사용됩니다。 있는func는lock()과unlock()입니다。 锁定解锁关键部分线程主题에서소。터터터。。。。 lock():由线程提供的锁。 unlock():关键部分的主题Thread解锁()锁定호출하여제합니다。 临界区 상의상의가동시에자원자료구조자료구조자료구조。의미합니。 NSLock,NSObject和NSLocking。 Apple说明文件。 NSLock和POSIX线程之间的关系。 解锁Lock NS를Lock메시lock lock동일한를Lock Lock내야합니。 다른Thread锁을제하면정의되지동작이있습니다。 NSLock锁定锁定。 에서Thread에서lock호출하면Thread가영구적으로있습니다。 锁定NSRecursiveLock。 功能锁(限制前:日期)->布尔 넘겨준로넘겨준나타내는나타내는ool Bool반환합니다。 을을limt를때까。다。 func`try`()->布尔 锁定반환합니다。 var名称:字符串? 名称코드내의锁定있습니다。 可可锁名称을사일부다。 例 NSLock的照片。 을NSLock않아서发行ISSUE가겠습니보코드를다。 编号100000번1증시키는Thread를다。 면그를동시에동시에동시에。있습니다。 5个号码获得了100000个1位用户的奖励,并获得了200000个发行人的数字,获得了190462个数据。 왜이런이현상? 개의는동시에동시에。다。 인가가가가가가가가가가가가가가가가가가가가가가가가。 2 1002는1001실게다됩니다 竞赛条件(경쟁)부릅니다。 种族条件될까요? NSLock的照片。 在NSLock中查看种族状况。 NSLock和线程号1和lock(),unlock()和Critical Section一起下载。 개의르게가가。。실행한실행한있습니있습니있습니있습니있습니있습니있습니있습니있습니있습니있습니있습니있습니있습니있습니있습니있습니있습니있습니。 5个号码값은값은number […]

使用Xcode 9和Swift 4从头开始学习iOS 11应用开发

如果您是编码初学者,并且想从事iOS开发工作,那么此课程适合您。 如果您想从Objective-C切换到Swift,那么请选择此课程。 这是学习完整的iOS开发的非常不可思议的全面在线课程。 这门课程不仅是学习Swift 4的最简单方法,而且还是制作iOS应用程序各个方面的真棒回顾。 于安琪(Angela Yu) “本课程的讲师”非常棒,他花时间仔细但迅速地描述了需要做的事情。 在这里查看 我会将本课程推荐给任何想学习如何制作iOS / Swift应用并使其成功的人。 本课程为48.5小时,满分为5,满分为4.8。 本课程教您以下内容: 您可以构建任何想要的应用程序 如何为您的业务构建成熟的应用程序 完成本课程后,您可以作为自由iOS开发人员 您可以使用Apple的新ARKit精通制作增强现实应用程序 如何使用Apple的新CoreMl构建您的第一个机器学习应用程序 和更多