Articles of JavaScript

目标C中的局部和全局类型变量

可以在声明它们的方法内访问局部变量,但不能在此方法之外使用它们。 让我们通过示例来了解它。 让我们创建一个将两个数字相加的方法,如下所示。 -(void)AddTwoNumbers:(int)a SecondNumber:(int)b { int结果= a + b; NSLog(@“输出=%d”,结果); //输出:output = 30 } 在这里,变量a和b都是方法参数。 结果是在AddTwoNumbers方法中声明的局部变量。 由于在方法中声明了它,因此您只能在此方法中使用它。 例如,我们使用变量c打印其值。 如果您尝试将结果打印到另一种方法中,则Xcode将不允许这样做,而是会给您错误。 请检查以下屏幕截图以了解局部变量。 这是局部变量的正确使用 这是对局部变量结果的错误使用 可以在整个类文件中的任何位置访问全局变量 。 它们在头(.h)文件中声明。 在上面的示例中,如果要访问viewDidLoad方法中的结果,则将结果声明为ViewController.h文件中的全局变量,如下所示。 ViewController.m文件将如下所示。 希望您了解局部和全局变量及其用法和范围。 谢谢您阅读🙂 请查看我的YouTube频道以获取视频教程并订阅,并与您的朋友分享。 youtube频道链接: https : //www.youtube.com/channel/UCWjT8XgKescscxlPbMSVzbQ

AR你为未来做好准备吗? 第1部分:iOS上的ARKit入门

苹果公司的ARKit不断发展,使开发人员能够比以往更深入地吸引用户。 通过吉尔·斯科特(Jill Scott) 随着各行各业的公司寻求与受众互动的新方式,productOps的我们正在使用增强现实技术,将移动应用程序从信息内容提升为体验内容。 借助ARKit,Apple提供了强大的SDK,可为iPhone构建AR体验。 它允许开发人员使用iPhone相机在3D空间中放置和操纵对象。 该博客快速浏览了ARKit,其引人入胜的功能,令人印象深刻的视觉效果以及广泛适用的工具包。 随着ARKit 2的发布,开发人员可以使用更多功能,包括持久性体验,共享体验,对象检测和跟踪。 我制作了一个快速而肮脏的Pokemon Go样机,以演示将交互功能实现到移动设备中的简便性。 熟悉Swift会有所帮助,但无需任何经验即可继续学习! 什么是AR和ARKit? AR对开发人员意味着什么? 让我们从Wikipedia定义开始: 增强现实 ( AR )是在现实世界环境中的互动体验,其中驻留在现实世界中的对象被计算机生成的感知信息“增强”。 您可能已经熟悉了流行的AR应用程序Pokemon Go! 您举起手机的摄像头,可以在屏幕上看到周围的环境,但是添加了一点点小动物就可以“捕捉”。 稍后,我们将返回此示例,作为我们的AR教程的基础。 AR可以分为两种类型的体验: 建设性和破坏性 。 前者为环境添加了元素,而后者则将其带走。 作为一个基本示例,想象一个室内设计应用程序。 富有建设性的AR体验将使您看到您的空间中新沙发的外观,而破坏性的体验将使您看到没有旧的大学craiglist沙发的空间。 我们为什么要关心移动AR? 重点是什么? 为什么要为移动用户集成AR体验? 吸引人。 它以许多其他应用程序功能无法实现的方式集成到用户的生活中。 用户在一个新的层次上与产品或想法进行交互,并查看其如何适应他们周围的世界。 它是先进的。 尽管集成起来相对简单,但结果在技术上令人瞩目。 有帮助 请参阅《汤姆指南》的这篇文章,以了解如何使用AR来创建从学习语言到探索博物馆再到选择化妆的真正有用的工具。 我们的应用 对于一个教程,我们将创建我亲切地称为“ Janky Pokemon”的东西。 这是Pokemon Go类应用的快速又肮脏的娱乐。 它不会支持应用程序商店,但是它将演示建立基本的AR体验是多么简单。 我们将从小处着手。 让我们设置项目并在屏幕上显示一个对象。 项目设置:第一步 首先创建一个情节提要,然后将一个AR场景视图添加到视图控制器中: 现在创建一个新的视图控制器,添加导入,遵循ARKit委托协议,并创建一个连接到场景视图的IBOutlet: 在viewDidLoad中设置场景视图并在viewWillAppear中运行它: 如果我们离开视图,我们想暂停会话: 现在让我们创建一个函数来向环境添加一个简单的盒子: 现在,只需在viewDidLoad中调用该函数并运行即可。 […]

如何为React Native App添加自定义标签栏图标

似乎超级容易。 毕竟,我们每天都能看到它-对于React Native应用程序而言, 简单的标签栏图标竟然难以实现。 在尝试查找资产,对其进行编辑,然后将其供应用程序使用之间,这并不是那么容易。 我没有可以在网上轻松找到的简单的端到端指南。 因此,我在这里为世界和未来写这篇文章。未来乔纳森无疑将再次遇到这个问题。 问题 只是为了措辞:标签栏位于底部。 状态栏是最上面的那个,上面写着日期,电池寿命等。导航栏是这两个之间的一个,其中包含有关屏幕内容的信息。 (导航栏还包含您可能会触摸的模式屏幕等按钮) React Native和iOS为您提供了许多“系统”图标。 您将从iPhone上的默认应用程序识别它们。 根据文档,它们是: 枚举“最高评分”) 这些功能广泛,但对大多数应用程序无用。 更不用说如果您在iOS系统上实现它们,则不仅会得到标准图标,而且其下方的文本也无法自定义。 系统图标也很丑陋。 许多应用都有自定义图标。 那么我们如何为自己的应用程序实现它呢? 解 实现这一目标的过程分为两个部分:图标(图像)和标题(文本)。 两者都需要填写。 查找图标的图像非常困难。 我最终使用了Canva.com的标准插图集。 我创建了一个72x72px大小的设计(这是我从Apple的HIG中读取的最大允许值),然后将其拍到一个简单的图标上。 我下载了带有白色背景的PNG(因为我没有付费帐户),然后在OS X上使用“预览”功能将白色拼出了透明的背景。 之后,我将其放入特定的文件夹中,并要求将其放入代码中的TabBarIOS.Item中: <TabBarIOS.Item icon={require(‘./assets/chat.png’)} title=”Chat” 请注意,React Native的require适用于PNG和非JS文件。 这真的不像标准的webpack(我最熟悉)的行为,所以我认为我应该在这里提一下。 记下文件名。 当我第一次刷新并看到图标时。 真是巨大! 在阅读了这个随机的Github问题后,我意识到可以通过将图标文件的名称从’chat.png’更改为’chat@3x.png’来解决此问题。 这是因为72px x 72px的大小仅与视网膜文件有关。 刷新,瞧! 结论 希望对您有帮助。 我知道这将是未来的乔纳森,那笨拙而健忘的白痴。

Swift中的ES8风格异步编程指南

背景 来自JavaScript / TypeScript / Node.JS背景,Swift中内置的异步编程范例使我有点不知所措。 我习惯于处理回调,promise和异步代码。 Swift有一个很酷的小工具,叫做Grand Central Dispatch,用于运行异步代码。 例如,如果我正在制作Todo应用程序,并且想为特定用户抓取一堆Todos,我会编写一些如下代码: 在我的Swift冒险期间,我发现了几个非常酷的库,这些库使我能够将所有JavaScript范例带入Swift的世界:PromiseKit和AwaitKit。 这两个库的结合将一开始的示例Swift代码变成了JavaScript示例中漂亮,干净,同步的代码。 PromiseKit还提供了URLSession的一些不错的扩展, URLSession扩展使处理HTTP请求变得更加容易。 等待承诺 这些库以与JavaScript的Promise构造非常相似的范例进行操作:您可以使用任何异步操作创建Promise,并且可以等待任何Promise。 对于上面的Swift示例,我们可以通过执行以下操作来重构它(较长的代码,因为它是一个完整的有效示例): 我们在这里做一些事情,所以让我们分解一下: 为我们的Todo创建一个对象。 该对象与我们的API提供给我们的JSON完全匹配(即https://jsonplaceholder.typicode.com/todos/1),因此我们将使用令人敬畏的Decodable协议将JSON直接解码为Swift对象。 创建一个函数loadTodos() ,该函数返回Todos数组的Promise。 我们使用return async { … }语法来做到这一点。 在内部,我们使用URLSession提供的方便的URLSession扩展,通过compactMap为所有HTTP请求创建Promises。 一旦有了Promises数组,我们就可以使用when语法等待它(类似于JavaScript中的Promise.all() )。 在Promises解决之后,我们可以通过它们进行映射,并将原始JSON响应很好地解码为Todo对象。 在主线程中创建一个printTodos()函数,该函数使您可以使用Promise语法调用loadTodos()函数。 这遵循现代JavaScript范例,其中大多数逻辑发生在async函数中,而入口函数调用Promise.then()来执行它。 如果您有返回Promises的函数(如URLSession的URLSession ),则此方法效果很好。 但是,创建您自己的Promise并抽象出异步逻辑非常简单。 PromiseKit提供了有关如何执行此操作的出色文档。 结论 我很高兴找到这些库,并使我的Swift编程感觉与我熟悉的JavaScript模式相似。 请随时提出反馈意见!

在React Native上为“ HackerJobs”实现黑暗模式

我感到很累,但决心完成这个正确的应用程序。 我还想了解其他事情。 与往常一样,可以在这里找到该应用的仓库。 今天的主要重点是完成大部分“黑暗模式”,这是我多年来一直希望在我的应用程序上要做的事情。 有很多要介绍的内容,所以让我们开始吧。 表明我们处于黑暗模式 以前,我必须在应用程序中创建某种“设置”功能。 今天,这是由Redux处理的,在InitialState的Settings部分中带有嵌套的true / false布尔值。 const initialState = { selectedTab: “Jobs”, savedJobs: [], settings: { “Dark Mode”: true, “Shuffle Job Threads When Opening”: true } } 事实证明,这非常有用,因为我现在可以访问应用程序的大部分内容,我们需要使用一个简单的MapStateToProps调用来指示其视图状态。 mapStateToProps = (state) => { return { savedJobs: state.get(‘savedJobs’), darkMode: state.get(‘settings’)[‘Dark Mode’] } } 这只是我痛苦的开始。 背景资料 由于每个应用程序选项卡组件屏幕都是独立创建的,因此需要进行一些工作以统一样式。 我创建了DarkStyles JS文件,该文件导出了深色视图所需的各种样式。 export const darkstyle = […]

移动应用程序开发的五种流行编程语言

随着时间的流逝,移动技术正在迅速发展并影响着全球范围内的各个业务部门。 建立成功的应用程序开发过程需要适当的市场研究,资源丰富的规划和策略,预算等。 但是,开发人员用来构建移动应用程序的编程语言是移动应用程序开发项目中最关键的方面。 尽管看起来似乎只是选择一种语言并使用它,但是它远远超出了此范围。 选择语言之前,您必须问自己几个问题– 哪种语言可以使您的应用程序兼具功能性和高度兼容性? 哪种语言与现代移动平台最同步? 充分利用所选编程语言的最佳方法是什么? 找到这些问题的答案后,您可以从以下最流行的编程语言中进行选择,以用于移动应用程序开发。 5种流行的编程语言 的JavaScript JavaScript是用于应用程序开发的最佳编程语言之一。 这种广泛认可的语言用于应用程序开发和Web浏览。 JavaScript已成为应用开发中最常用的编程语言,因为它可以轻松地与各种平台一起使用。 该语言易于使用且易于完全控制。 所有开发人员都没有用于JavaScript的固定标准,这为不同平台之间的差异留出了很大的空间。 爪哇 Java是用于移动应用程序开发的另一种广泛的编程语言。 就Android或iOS移动应用程序开发而言,Java无疑是最受欢迎的编程语言。 代码的可重用性和可移植性使其成为最简单的选择之一。 Java使构建代码可以在多个环境,浏览器,虚拟机和不同平台中运行。 它具有巨大的开源支持,其中包含许多库和工具,可在应用程序构建过程中为开发人员提供帮助。 它还可以保护开发人员免受本机代码固有的问题,例如错误的指针使用,内存泄漏等。 蟒蛇 Python已经成为一种增长的编程语言,并且没有消失的迹象。 它可以在Web应用程序,桌面应用程序,网络服务器,机器学习,媒体工具等中找到。 Python的语言基于简单性。 它强调以易读性为重点的明确性和紧缩性。 对于学习者来说,这是一门很棒的语言,并且是理解程序开发复杂性的门户。 Python可以很容易地用于从零开始为Android和iOS软件制作移动应用程序。 的PHP 对于需要访问数据库的应用程序,PHP是推荐的编程语言。 最好用于命令行脚本,服务器端脚本和编码应用程序。 这种灵活的编程语言可以支持面向对象的开发,但无需特别关注。 作为一种开源语言,它一直在被开发。 这是用于创建电子商务应用程序和内容丰富的应用程序的绝佳语言。 此外,它易于学习,与平滑集成格外兼容。 迅速 Swift是移动开发领域的潜在游戏规则改变者。 它是由Apple创建并于2014年引入的。该语言专门设计用于iOS和OS X平台。 Swift具有开源的优势,并且非常易于学习,特别是对于已经熟悉Objective-C编程语言的程序员。 Swift避免了Objective-C的某些错误,所需的代码更少,维护更少,并且使移动应用程序的开发绝对简单。

一块免费的源代码

我们在我们的网站Piece中引入了免费源代码。 您可以免费下载源代码,并将代码集成到您的应用程序中。 请在片上签出免费源— https://www.piece.cool/products/free 1.斐波那契数列发生器 该应用程序从您指定的斐波那契数列中生成数量的数字。 它可以将结果记录在一个文本文件中。 有关更多详细信息,请参阅— https://www.piece.cool/products/view/227 2.实时十六进制Bin Dec转换器 ·此应用程序实时转换不同基数的整数。 ·只需在一个字段(十进制,十六进制,二进制或八进制)中键入或粘贴一个整数值,它将被转换并以其他格式实时显示。 将空格添加到显示的值以使其更易于阅读。 ·应用程序使用angular的两种方式绑定来实时显示结果。 由于需要处理这些值,因此我们对要显示的每个属性都使用了一个getter和setter方法。 ·例如,通过在调用“ Convert()”方法时修改参数,可以非常容易地将显示格式从八进制更改为以6为基数。 有关更多详细信息,请参阅— https://www.piece.cool/products/view/272 登录到Piece并享受免费的源代码,以用于学习目的或用于您的业务系统。 如需任何帮助/查询,请通过https://www.piece.cool/contacts或通过info@oneact.jp发送电子邮件与我们联系。 件管理系统

客户电话:Jan Klausa,线索

这是我们的 Customer Convos系列 的一部分 。 我们正在分享人们在工作中如何使用npm的故事。 想分享您的想法吗? 给我们打个 电话 。 问:嗨! 你能说出你的名字和你做什么吗? 嗨! 我是Jan,我是Clue的iOS开发人员。 你今天过得怎样? 和我的猫一起变冷 ,所以很好。 告诉我贵公司的npm故事。 我们的产品是iOS和Android的两个移动应用程序。 我们使用JavaScript编写了一些逻辑,因此我们不必在两个平台上都做两次即可共享。 使用真正的软件包管理器来处理该问题,而不是不时有人“嘿,我们应该更新应用程序中的JS,是吗?”非常好。 您能告诉我们有关您想使私人包装真正使您能够做的特定包装的故事吗? 对于我们的每个平台,我们应用程序的某些核心逻辑确实很容易出错并且很难重新编写-但是它具有许多专有逻辑,因此将其私有化是必须具备的。 贵公司是否开源? 您如何协商保密和公开的内容? 我们确实有一个GitHub组织,并且那里没有几个仓库,这些年来我们已经建立了很少的帮助程序,但这不是我们工作的重要部分。 最近,我们一直在内部进行讨论,以找出在更广泛的环境中有用的点点滴滴并将其开源化,但还没有具体的方法。 对于不确定谁可以使用私有软件包的人,您将如何解释用例? 通过类比GitHub私有orgs / repos。 您知道您的源代码在私人仓库中如何吗? 好吧,您的JS库的构建工件也可以! 使用私有软件包的日常经验如何? 相当无缝! 我对Web界面的了解很少(进入私有软件包的点击次数过多,我很想查看版本历史记录),但是否则我不能说我注意到任何问题。 哦! 今年早些时候,成立组织的人离开公司时发生了一个问题。 我记得有人抱怨过将所有权转让为PITA的过程,但是我并没有参与其中,所以我真的不记得具体细节…… 编者注:我们总是很乐意提供帮助! 如果您有任何问题,请通过 support@npmjs.com 与支持 联系 。 您是否建议其他组织或公司使用私有软件包或组织? 为什么? 是。 “请停止在回购之间复制粘贴文件。” 我没问过你是否希望我有任何问题吗? Nyup,我想您已将其覆盖。 您要宣传的贵公司公开做过的任何酷npm东西? 可悲的是……

UIGraphicsImageRenderer

用于创建支持Core Graphics的图像的图形渲染器。 总览 您可以使用图像渲染器完成绘图任务,而无需处理诸如颜色深度和图像比例之类的配置,也无需管理Core Graphics上下文。 使用诸如图像输出尺寸和格式之类的参数初始化图像渲染器。 然后,您可以使用多个绘图功能之一来渲染共享这些属性的图像。 渲染图像: (可选)创建UIGraphicsImageRendererFormat对象,以指定渲染器用于创建其上下文时应使用的非默认参数。 实例化UIGraphicsImageRenderer对象,提供输出图像的尺寸和格式对象。 如果您不提供格式对象,则渲染器会对当前设备使用明智的默认设置,如创建图形图像渲染器中所示。 根据所需的输出选择一种渲染方法: image(actions:)返回一个UIImage对象; jpegData(withCompressionQuality:actions:)返回JPEG编码的Data对象; 和pngData(actions:)返回一个PNG编码的Data对象。 执行选择的方法,提供Core Graphics绘图指令作为闭包参数,如使用Image Renderer创建图像中所示。 使用“混合模式”演示了一些可在绘图说明中使用的更高级的渲染功能。 (可选)您可以在提供给渲染方法的绘图说明中使用Core Graphics绘图代码,如使用Core Graphics渲染功能中所示。 初始化图像渲染器后,您可以使用它来绘制具有相同配置的多个图像。 图像渲染器保留了Core Graphics上下文的缓存,因此重用同一渲染器比创建新渲染器更有效。 样例代码 参考文献 UIGraphicsImageRenderer 您可以使用图像渲染器完成绘图任务,而无需处理诸如颜色深度和颜色等配置 。developer.apple.com

一个普通人的编码之旅

我决定着手#100DaysOfCode开始新的一年。 通过其他推文,我看到了许多雄心勃勃的目标(通常涉及找到开发人员职位)。 我的目标虽然没有那么崇高,但我想与其他像我一样悠闲地学习编码的人分享。 我没有任何近期的职业目标,但我确实认为知道如何编码将变得越来越有价值。 我衷心希望开发人员与用户之间的界线继续变得模糊,并且我相信我会找到方法将我从学习中学到的知识应用于日常工作中。 我的旅程开始了,因为我确定还有很多其他人。 我从Codeacademy开始工作,完成了一些挑战,被困住并离开了几年! 但是,嘿,没关系。 后来我遇到了FreeCodeCamp,并决定再次尝试编码。 事情几乎都以同样的方式进行,充满挫败感的时刻让我将其搁置很长时间。 对我来说起作用的是还有其他需要切换的地方。 我在iPad上启动了Swift游乐场。 我确定有人会觉得它很幼稚,但是在编码的背景下,我只是个婴儿。 我真的很喜欢这样的事实,当我的代码无法正常工作时,很容易逐步了解错误所在。 当然,现在我已经找到了其他语言可以做到这一点的工具和技巧,但是一开始内置此功能确实很有帮助。我还发现,在两种类型的教程之间进行切换可以帮助我思考不同方面的问题。角度。 总是有一些小怪癖没有得到明确的解释,但是当您以略有不同的方式看到相同的信息时,便可以建立更直观的联系。 每个人对学习哪种最佳语言都有不同的看法。 老实说,我想担心这些事情为时尚早。 但是有几个人向我赞扬了Python的优点,所以我想我会看一下。 我还想要Raspberry Pi,并记住它使用Python。 这使我参加了麻省理工学院的EdX课程, 《计算机科学入门和使用Python编程》 。 尽管他们强调这不是一门Python课程(而是一门使用Python演示核心原理的CS课程),但这似乎是一个不错的起点。 现在,事情真的开始融合了。 我见过for和while循环,并学会了迭代。 我知道if语句和布尔运算符。 了解如何以另一种语言使用这些技术并了解异同是非常有教育意义的。 我会说,由于在语言之间进行切换,我在语法上有些挣扎,但是最终这是一件好事,迫使我更加努力地记住正确的语法。 本周,我实现了几个重要的里程碑,使我成为了一个很好的#100DaysOfCode。 首先,我完成了FreeCodeCamp上的所有基本算法脚本挑战。 哇,我认为那将永远不会结束。 我迷失了绝望的放弃次数,但稍后会再次提出并找到解决方案。 我想我克服了对方法的恐惧。 从一开始,解决方案总是使用某种基本为您完成挑战的方法,而不是构建一些冗长的算法来逐步解决问题,这似乎一直是不公平的。 我也被吓倒了,因为我永远无法记住所有可用的方法,所以我只是不想使用它们。 而且,它们通常是一个黑匣子-很难确切地了解一种方法在特定情况下会做什么。 但是,不仅学会了通过测试,还学会了尝试一些不同的方法并使自己对使用方法更加满意。 我的另一个重要里程碑是在MIT课程的第3周结束时通过了问题集。 问题基本上是要开发一款像a子手一样的游戏。 老实说,我认为这将花费我几个小时,而且我想知道我是否学得足够好,足以应付如此艰巨的任务。 我最了解的是坚持。 我的第一次尝试没有效果? 当然不是,它几乎永远不会。 调整代码。 找出问题所在。 重新阅读一些笔记。 真的无法消除特定的错误吗? 破坏代码并采用其他方法-解决问题始终是一种以上的方法。 令我感到惊讶的是,我能够整理出一些实际上是交互性的代码,而最好的是没有办法作弊,这使我自己找到了解决方案,因此我为自己的全部代码而感到自豪自己的工作。 我议程上的下一件事是MIT课程的期中考试。 在完成之前,我将尽量避免使用其他语言。 这是有时间限制的考试,因此我不想浪费宝贵的时间试图记住我是否需要分号或逗号。 我真的不知道会发生什么,但希望一切顺利。 […]