Tag: 目标C

Objective-C框架

像大多数编程语言一样,Objective-C是一种相对简单的语法,由大量标准库支持。 那里有一些不同的“标准库”,但是苹果公​​司的Cocoa和Cocoa Touch框架是迄今为止最受欢迎的。 它们分别定义了用于构建macOS和iOS应用程序的API。 稍微备份一下,框架就是资源的集合。 它将静态库及其头文件收集到单个结构中,Xcode可以轻松地将其合并到您的项目中。 下面的列表重点介绍了Cocoa和Cocoa Touch中的一些关键框架。 基础 Foundation框架定义了Objective-C类的基础层。 在本文中,您将找到核心的面向对象的数据类型,例如字符串,数组,字典等。 UIKit UIKit框架提供了构建和管理iOS应用所需的关键基础架构。 该框架实质上提供了数十个类,用于在iOS设备上创建和控制用户界面。 AppKit基本上是UIKit,但适用于OS X设备。 核心数据 核心数据为Foundation和Cocoa应用程序提供了对象图管理和持久性。 该框架提供了用于管理对象关系的便捷API,并允许您轻松地将数据库功能集成到应用程序中。 媒体播放器 Media Player框架是一个API,可提供播放电影,音乐和音频播客的功能,同时还允许您访问用户的iTunes库。 石英芯 Quartz Core框架允许您处理图像。 它分为两个子框架: CoreImage提供图像和视频处理功能(例如,滤镜)。 CoreAnimation框架使您可以对UI组件进行动画处理。 CoreGraphics 基于Quartz高级绘图引擎,CoreGraphics提供了低级2D绘图支持,并允许您自定义UI并具有惊人的效果。 我希望这是有用的! 如果您有任何疑问…,您可能应该将其绑定。 😊

目标C Takvim Etkinlikleri

EKEventStore商店,商店,商店,商店,图书馆,图书馆。 Takvim bilgilerine EKEventsınıfınınözellikleriyleerişebilirsiniz。 Aynışekilde,EKEvent,请发送邮件至zelzellerler ayarlayarak takvim bilgilerinideğiştirebilirsiniz。 Takvime Etkinlik Eklerken: 您可以在olarakkullanıcanbuişlemiyapmakiçinyetki istemelisiniz中找到答案。 Yetki个人资料info.plistdosyasınaalttakialanıekleyin。 EKEvent事件事件EventWithEventStore:yöntemiyleyeni bir olayoluşturun。 Yeni biretkinliğinayrıntılarınıveya dahaönceTakvimveritabanındangetirdiğinizbiretkinliği,olayınkarşılıkgelenözellikleriniayarlayarakdüzenleyebilirsiniz。 错误EKEventStore保存事件:span:commit:error: ile takvimveritabanınakaydedin。 Takvime Etkinlik Silerken: BirolayıTakvimveritabanındankaldırmakistiyorsanız,EKEventStoreyönteminiremoveEvent :跨度:提交:错误: kullanın。 删除事件:跨度:提交:错误: yönteminin跨度参量EKSpanFutureEvents belirterekkaldırabilirsiniz。

Objective-C中的运行时

Objective-C是一种动态语言。 使用Runtime ,可以通过C中的struct来表示对象,并且可以通过c语言function来完成方法。 Runtime是用汇编和c编写的。 利用Runtime的好处,我们还有另一种方法来调用类和实例方法。 下面的示例演示如何使用Runtime来调用类和实例方法:

最佳SoftwareHut的iOS实践-SoftwareHut

尽管2017年Android应用程序的下载频率是iOS应用程序的两倍,但后者也受到广泛欢迎。 但是,Apple设备的普及率在增长,对iOS开发人员的需求也在增长。 如果您是或想成为其中的一员,那么本文适合您,因为我将向您展示最佳的iOS做法。 他们将帮助您开发更好的应用程序。 准备? 我将上述做法分为以下几节: 通用技术概念 代码质量 性能 构架 建筑 其他有用的提示和技巧 在本节中,我只为您提供三个词: SOLID —单职责原则,开放/封闭原则,Liskov替代原则,接口隔离原则,依赖反转原则 吻 —保持简单,愚蠢 干 -不要重复自己 首先,您应该遵循为Swift和Objective-C准备的代码样式指南。 这很重要,尤其是当只有几个程序员在开发同一应用程序时。 这就像成立一个音乐乐队一样-如果每个人都做自己的事,他们将不会成功,开发团队也是如此。 如果您可以在深夜重复这些指南中的建议,则可以继续进行下一步-自动执行构建。 使用Fastlane将每个项目配置为自动生成,然后将其上传到HockeyApp。 最后,在单个视图控制器中避免大量代码。 您可以使用VIPER或MVVM体系结构来完成此操作。 尽管iOS设备运行速度非常快,并且无论它们有多老,它们都可以正常运行,但是您的应用程序无法降低它们的速度。 您可以通过以下方法提高应用程序的性能和可维护性: 尝试避免使用外部UI库 尽早确定最低iOS版本-记住检查旧系统上新的iOS API是否得到正确处理 集成崩溃报告工具 使用这些框架可以使您的工作更轻松,更快和更好。 联网 AF网络 Alamofire 楷模 对象映射器 披风 依赖注入 弹射 台风 专卖店 钥匙串访问 领域 通过逻辑结构来开始您的项目。 它的结构应反映您存储库中的目录结构。 关于文件夹名称-它们应该为小写字母,并且空格应替换为“ _”。 使项目的层次结构反映您的体系结构,即: UI:包含对自定义UIView,UIViewController和容器的引用: 视图:自定义UIView,UITableViewCells等 View_controllers:UIViewControllers 应用程序:AppDelegate Supporting_files:info.plist和其他描述应用程序的文件 […]

世界新闻自由DPRK <US <立陶宛:排序,pickerviews和scrollviews

前几天,我在看新闻,发现了一个有趣的事实。 显然,根据《无国界记者》,美国在180个新闻自由国家中排名41。 显然,我要做的第一件事就是确保“无国界记者”不仅仅是朝鲜宣传机器的一部分。 我主要是通过确定他们的网站在不到3年的时间内加载并且拥有漂亮的图表这一事实,确定记者无国界实际上不是我们亲爱的领导人金正恩的卫星组织,所以我想了解更多。 基本上,他们提出此清单的方式是向许多专家分发调查表,然后将他们的回答与评估期间内针对记者的虐待和暴力行为数据结合起来。 您可以在此处阅读有关该过程的更多信息。 作为一个千禧一代,我自然地认为,北欧的所有天堂,抱歉的避风港,在新闻自由上都比我们的公司经营,喜欢特朗普,筑墙反乌托邦更重要最终跻身榜首的国家。 正如我最近很酷的孩子们所说的那样,我错误地认为自己是一个“有识之士”的人,我以为外面的某些人可能和我一样震惊。 在过去的几天里,我从事了一个项目,该项目以几种不同的方式显示了许多国家的人口统计信息。 您可以在github上找到它的代码。 这主要是为了让我从纽约搬到加利福尼亚后的一个礼拜后重新回到游戏中。 我遇到的三个有趣的事情是排序,选择器视图和滚动视图。 找不到合适的API,我将一些奇怪的15个国家/地区及其排名硬编码到我的主视图控制器中。 我有一个帮助方法实例化我的国家,每个国家都有:名称,新闻自由等级,GDP等级,识字率等级,国旗图像,总人口等级,人口密度等级,出生率等级和人均军费等级。 在我的初始视图控制器中是表格视图,我希望用户能够根据他们选择的人口统计对国家进行排序。 我选择了选择器视图作为选择的工具,因为我认为它看起来很时髦。 使用选择器视图就像将其放置在情节提要中的所需位置,设置与视图相关的约束,然后将视图控制器设置为选择器视图的委托一样容易。 使用委托时,记住在接口处添加委托选择非常重要: 选择器视图有两种方法需要使用: 第一个是确切描述选择器视图中有多少列。 第二个描述选择器视图中有多少行,我将其设置为每个国家/地区拥有的人口统计类别的数量。 第三种方法为您的选择器视图填充每一行的首选文本或图像。 快速提示:如果您想弄圆任何东西的边缘,这非常简单 如果我滚动到识字率等级,然后单击提交按钮,我的国家将以识字率的升序重新排列。 排序过程本身很简单。 它所需要的只是一个NSSortDescriptor,您可以在该数组上使用它根据该数组中对象的特定键对其进行重新排列。 完成我的初始视图后,我希望用户能够从表格视图中选择一个国家,并将其切换到另一个视图,以显示特定于国家/地区的统计信息。 所需要做的就是从表格视图的原型单元格到另一个视图创建一个序列,并传递要用于填充目标视图控制器的特定国家/地区对象的数据。 确保在目标视图控制器的.h文件中,为期望接收的对象类型添加一个属性。 成功配置了我的应用程序的基础知识之后,我想添加另一项功能,即人口统计信息的直观表示。 因此,我在主视图控制器中添加了一个“浏览”按钮,该按钮与一个表视图控制器结合使用,该列表控制器列出了每个国家/地区的人口统计类型。 当按下其中一个表格单元格时,它会选择另一个具有图像的视图控制器。 我希望图像具有一定的交互性,因此将其置于滚动视图中。 现在,滚动视图对于刚开始的用户可能会有些棘手,所以让我引导您完成整个过程。 步骤1:将滚动视图拖到视图控制器上,并使其达到所需的大小。 我想缩小视图的尺寸,因为我希望它可以占据整个屏幕。 步骤2:将视图或图像视图拖到滚动视图上。 步骤3:使用方形领带战斗机将imageview约束为滚动视图。 步骤4:将imageview的高度和宽度限制为滚动视图。 进行此操作时,请确定您是否希望用户能够垂直水平滚动或同时使用这两者。 我希望用户能够水平滚动,因此我将imageview相对于滚动视图的宽度限制设为3。 步骤5:如果要允许放大和缩小,请确保在滚动视图的“属性”检查器上设置最大和最小缩放属性。 步骤6:使ViewController成为滚动视图的委托 第7步:添加一种简单的缩放方法 确保在要缩放的特定滚动视图中返回特定内容。 如果在一个视图控制器中有多个滚动视图,则就像在方法中添加if语句一样简单 步骤8:退后一步,享受工作 好吧。 关于排序,选择器视图和滚动视图的非常基础的教程。 希望您能学到一些东西,下周再见,还有更多有趣的事实,以及编码小知识。

Swift4 Day94:Swift开发人员的Objective-C

2018.12.26适用于Swift开发人员的Objective-C 建立String的方法 NSString * productTitle = @“弹跳球”; NSString *制造商= @“ Acme Novelty”; int float double建立方法 int数量= 144;浮动价格= 19.9;双单位价格=数量/价格; 数组的建立方法 想要把double放到Array必须先将它转成NSObject NSArray与NSDictionary是不能修改的,如果要修改要使用NSMutableDictionary [bostionDict setValue:@“巴西”为键:@“国家”]]; 是将国家的值从美国改成巴西 [bostionDict addEntriesFromDictionary:@ {@“人口”:@(656000)}]; 加新的物件到bostionDict中 switch跟for的写法跟swift没什么区别但一定要加() 新建NSObjcet档案命名为Animal后,会有h档跟m档。 .h为标头档,做为宣告属性和方法使用, .m为Objective-C档,做为实际编写属性值和方法内容使用。 先定义Animal.h的属性 枚举组{哺乳动物= 0,鸟,爬行动物,两栖动物,BonyFish,CarFish}; @ interface Animal:NSObject @ property(nonatomic,strong)NSString * name; @property(nonatomic)枚举组group; @property(nonatomic)BOOL isExtinct ; @属性(非原子)IBOutlet UIImageView * thumbnaiView; @end 建立一个为动物型别的物件称为liger 只写动物* liger; 会报错,要记得分配 […]

如何选择堆栈,第3部分:iOS

如果您正在从事编码工作,那么第一个问题可能是“哪种语言是最好的?”,然后是“我如何学得足够好,以至于有人雇用我?” 第一个问题的答案通常是主观的,因为首先要学习的“最佳”语言(您可能会在整个职业生涯中学到很多)取决于您的目标和偏好。 由于后端语言的高薪或受欢迎程度,它似乎是最好的学习语言,但是如果您主要想在应用程序界面上工作,则后端语言可能不是正确的选择。 在本博客系列中,我们将共享高级Code 401系列中学习每种语言的收益,薪水,职业潜力和资源。 今天,让我们谈谈iOS开发人员的两种语言Swift和Objective-C。 Swift和Objective-C:构建移动应用 就像Python和JavaScript一样,iOS开发不仅涉及学习编程语言的语法。 iOS开发人员必须了解信息体系结构,面向对象的程序设计,Xcode,以及如何针对各种设备和配置(iPad与iPhone,横向与纵向布局等)构建和调整应用程序。 此外,移动开发人员在与新兴技术合作方面处于领先地位,不仅为智能手机和平板电脑构建应用程序,而且还为智能手表,智能电视,物联网以及虚拟现实和增强现实构建应用程序。 企业由移动应用提供动力 就像网站和社交媒体一样,移动应用程序在企业期望拥有的,面向客户的访问点列表中也很出色。 无论他们只专注于移动设备(例如SnapChat或Instagram),还是需要支持其主要业务的移动应用程序(例如银行,百货公司,社交媒体平台等),企业都意识到,如果他们想在他们所处的地区吸引客户随时随地-他们需要一个移动应用程序。 应用程序也可以帮助业务流程,并且公司正在使用移动软件来改善内部功能,从缩短员工培训时间到改善团队沟通。 随着向更多移动设备的转移(去年,美国68%的成年人拥有智能手机,自2011年以来几乎翻了一番),对移动应用程序开发人员的需求只会增加。 iOS开发人员的工作 与任何技能一样,职称和职业方向取决于偏好,专业,行业时间和其他因素。 一些较常见的工作是: iOS开发人员 iOS软件工程师 移动开发者 iOS应用程式开发人员 iOS移动开发工程师 Mac OS / iOS开发人员 iOS工程师 移动应用开发商 iOS开发人员的薪水 就像职务一样,iOS开发人员的薪水取决于几个因素。 根据Indeed的说法,薪水一直在上涨,美国iOS开发人员的平均薪水为101,000美元。 如何学习Objective-C和Swift 如果您是一位有抱负的iOS开发人员,那么了解Swift和Objective-C都是很重要的。 了解这两者将使您在行业中更具市场价值,并使您对iOS开发生态系统有更好的了解。 以下是我们为想要扩展到iOS开发的程序员推荐的最佳资源。 图书 iOS编程:大书呆子牧场指南 Objective-C编程:大书呆子牧场指南 功能迅捷 Swift编程指南 线上 雷·温德利希(Ray Wenderlich)的博客 Apple的Swift开发人员“入门”指南 Tuts + Lynda.com 班级 Code Fellows中历史最悠久的课程之一是iOS中的Code 401:Advanced Software Development。 如果您正在寻找一条直接,快速的途径来更新您的编程技能集或扩展为一种新语言,那么我们为期10周的移动开发课程将教授移动开发人员应了解的最佳做法和标准,例如新版本中的更改。版本的Swift以及如何使用现有代码库。 […]

iOS计算器:以编程方式和界面生成器

作为接受培训的iOS开发人员,我终于做出了我的第一个“重大”决定。 以编程方式或在界面生成器(storyboard)上构建视图。 普遍的共识是,您可以选择自己最舒适的一个。 但是,如果您希望在团队中工作,那么您将有必要知道如何以编程方式创建视图,因为这样可以提高可读性。 在/ r / iOSProgrammer上看到这篇文章后,我决定尽我所能来同时掌握这两种知识。 我最近使用堆栈视图完成了一个计算器应用程序。 我使用界面生成器创建了自动布局,但是我将以编程方式重新创建视图。 以下是完成实验后该应用程序的最终结果。 我不会显示所有的约束和设置,但是下面概述了如何使用界面生成器。 让我们一步一步地以编程方式重新创建它! 请记住,您可以执行界面生成器的大多数操作,可以以编程方式进行,反之亦然。 将所有按钮连接为IBOutlet。 2.删除所有约束,并在超级视图和按钮上关闭“翻译自动调整大小”功能! 此步骤有些重复,但是很简单! 3.接下来,让我们创建将包含所有其他堆栈视图的堆栈视图,就像在界面构建器中所做的一样。 但是,这次我们将以编程方式创建堆栈视图,而不是使用对象库。 很简单 4.嘿,我们已经在第4步了吗? 我怎么知道要更改什么属性? 约束来自哪里? 还记得我说过的一件事情你可以做的事,而另一件事情可以做得差不多吗? 在下面可以看到轴,路线,分布和间距都存在,并且在界面生成器上完全相同! 在这一点上,这将是相对重复的,所以我将为您省去多余的阅读内容。 第二,第三和第四堆栈遵循逻辑。 继续尝试一下! GitHub: 单击此处获取完整代码 目前,由于我在设计应用程序时需要视觉帮助,因此我更习惯于通过界面生成器构建自动布局。 但是,完成此应用程序后,以编程方式进行自动布局并不像我想象的那样令人生畏。 以下是完成此操作时对我的一些重要帮助: 您可以以编程方式创建任何内容! 如上所示,我使用UIStackView创建了一个堆栈视图,您可以创建在对象库上可以看到的任何内容。 输入“ UI”并查看自动完成的内容。 就像我之前提到的,您可以通过界面构建​​器对UI对象执行的任何操作,都可以通过编程来完成。 再次输入您的对象,看看自动完成可以显示给您什么! 将子视图添加到视图时,请使用“ addSubview:”,要添加到堆栈视图,请使用“ addArrangedSubview”。 如果您不知道要以编程方式添加哪些属性或约束,请检查界面构建器上可用的属性或约束! 神奇宝贝在编写代码时可能会分散注意力,请确保全部捕获!

简而言之:UIImage

图像在应用程序中使用非常频繁,无论是添加背景还是更改图标,它们都非常有用。 因此,对于我作为Flatiron学生的第一篇技术博客文章,我认为与UIImage一起工作会很有趣。 在介绍如何使用UIImage将图像添加到应用程序之前,这是Apple的定义: UIImage对象管理您的应用程序中的图像数据。 您使用图像对象来表示各种图像数据,并且UIImage类能够管理基础平台支持的所有图像格式的数据。 图像对象是不可变的,因此您总是根据现有的图像数据来创建它们,例如磁盘上的图像文件或以编程方式创建的图像数据。 图像对象可以包含单个图像或您打算在动画中使用的图像序列。 为了测试UIImage,我决定制作一个应用,其中列出了一些我最喜欢的艺术家“摇滚”和“灵魂”的类型,然后在用户点击时显示其图像。 以下是在我的应用中实现UIImage时很重要的一些步骤。 第一: 我确保将UIImageView放置在希望显示图像的Tableview Controller中。 第二: 我将照片导入到项目的“ Supporting Files”文件夹中。 创建了可让我的表视图控制器在彼此之间传递的自定义类,其中包括一个名为“照片”的类,在其中声明了两个属性,这些属性用于帮助指定分配给每个艺术家的照片。 最后,在此步骤中,我将我的新课程文件连接到情节提要中的TVC。 第三 我使用此代码将耳机图片设置为缩略图。 请记住,就像将文本设置为单元格一样,它也有很多层次。 第四 是时候创建一些“照片”对象了。 创建完这些新对象(并声明一个将容纳这些对象的NSMutableArray)之后,我向下移至viewDidLoad。 已声明该数组,但该数组不存在,请输入alloc和init(这也必须针对Photo对象完成)。 然后,我使用点语法为其提供一些值,这些值将帮助我捕获特定的图像。 最后,将其添加到为容纳这些Photo对象而创建的数组中。 第五 设置好序列并将数据发送到TVC之后,我使用UIImage imageNamed:方法来指定将在我的应用程序中使用的图像。 UIImage有很多功能,到目前为止,我已经展示了只是将其添加到您的应用程序中。 您可以对UIImage进行操作和动画处理,并在应用程序的许多方面使用它们。 我建议您检查一下并乐在其中!

UIViewController:响应iOS中的查看事件的生命周期

通常,在学习Objective-C和iOS开发时,您将遇到一个名为UIViewController的类。 此类是应用程序开发周期中非常重要的一部分。 根据Apple文档定义: UIViewController类提供了用于管理iOS应用程序视图的基础结构。 视图控制器管理一组视图,这些视图构成了应用程序用户界面的一部分。 〜 苹果 简单来说,视图控制器就是:视图的控制器。 它通过控制与视图关联的对象来管理应用内容在屏幕上的呈现。 一些职责包括通常根据对数据的更改来更新视图的内容,响应用户与视图的交互,调整视图的大小,管理整个界面的布局以及相关行为。 例如,当视图更改时,视图控制器会自动调用其自己的方法,以便子类可以响应该更改。 根据Apple的文档,所有这些更改通常会在以下阶段发生: 在此图中,您可以推断在将事件设置为显示或消失之前, 将调用Will方法。 另一方面,事件发生后将调用Did方法。 另外,请注意,对于每个Will方法调用,都有一个Did方法形式的对抗动作,该动作表示视图控制器对视图的完整控制周期。 但是,需要注意的是,在此视图控制器周期开始之前,必须在将控制器的视图加载到内存中之后首先调用viewDidLoad方法。 这是第一个要验证的方法,只有在调用或加载有问题的视图后,它才会被调用一次。 当视图控制器自动调用它时,此视图控制器将使用代码填充视图。 这是执行未在Storyboard中完成的任何视图初始化的好地方。 首次出现视图时应加载的所有内容都必须在viewDidLoad方法中实现。 视图控制器的生命周期中包括的其他方法是: viewWillAppear:在将视图控制器的视图添加到视图层次结构之前以及在为该视图配置任何动画之前,将调用此方法。 换句话说,它用于准备将视图显示在屏幕上,并且设备已准备好在呈现视图之前显示UIView实例。 您可以重写此方法以执行与显示视图相关的自定义任务,例如在视图变为可见之前隐藏字段或禁用操作。 viewDidAppear:通知视图控制器其视图已添加到视图层次结构或窗口中。 例如,您可以使用等待屏幕覆盖该视图以在视图中显示。 viewWillDisappear:在实际删除视图之前和配置任何动画之前,将调用此方法。 重写此方法,例如提交编辑更改和类似行为。 viewDidDisappear:通知视图控制器其视图已从视图层次结构中删除。 如果您希望在关闭或隐藏视图方面发生任何其他事情,可以覆盖此方法。 总而言之,这些阶段通常确定视图控制器的周期。 这些是跟踪和确认视图事件(如外观和消失)顺序的方法。 该视图出现在屏幕上并变为可见,然后关闭该视图时便消失。 与viewDidLoad相比,在视图控制器生命周期中可以多次调用其余这些方法。 为了了解有关这些事件或UIViewController类或相关子类和对象的更多信息,请参阅Apple的iOS开发人员库。