iOS学习笔记
Young丶
这个作者很懒,什么都没留下…
展开
-
C语言编译过程
1. C语言编译过程 源程序==》编译==》连接==》可执行的程序 C语言的编译器: gcc GUN C Compile clang 苹果公司自己的编译器 1. 使用文本编辑器写一个first.c 源程序 #include int main(){printf("Hello World.\n");原创 2015-07-26 10:04:51 · 568 阅读 · 0 评论 -
输出缓冲区:
输出缓冲区:printf ==》 输出缓冲区 ==》显示器 printf函数打印的内容会先送入输出缓冲区,输出缓冲区将数据送到显示器我们才能看见。 什么时候输入缓冲区会将数据送到显示器(什么时候输出缓冲区会清空) 1) 当输出一个换行符时 2) 当输入时,先清空输出缓冲区 3) 输出缓冲区满时 4) 当主动调用fflush(s原创 2015-07-26 14:34:14 · 795 阅读 · 0 评论 -
Mac Os 基本命令行
1.Mac Os 文本系统 unix系统/ 根目录(Root Directory) 根目录只有一个,代表整个硬盘 命令行中执行以下命令: 1.pwd (print work directory) 打印当前目录(工作目录) 目录==文件夹 可以知道我在哪 2.cd (change Directory) cd原创 2015-07-26 10:01:07 · 669 阅读 · 0 评论 -
C语言中的输入输出函数
……………………………………………………………………………//键盘缓存区(按enter送入)==》输入缓存区 ==》scanf…………………………………………………………………………… int password; do { printf("请输入密码:"); scanf("%d",&password);//scanf只能读取%d 数字 不能原创 2015-07-26 12:20:16 · 1071 阅读 · 0 评论 -
C语言缓冲区(缓存)详解
1.概念缓冲区又称为缓存,它是内存空间的一部分。也就是说,在内存空间中预留了一定的存储空间,这些存储空间用来缓冲输入或输出的数据,这部分预留的空间就叫做缓冲区。缓冲区根据其对应的是输入设备还是输出设备,分为输入缓冲区和输出缓冲区。 2.为什么要引入缓冲区比如我们从磁盘里取信息,我们先把读出的数据放在缓冲区,计算机再直接从缓冲区中取数据,等缓冲区的数据取完后再去磁盘中读取原创 2015-07-26 10:59:00 · 9086 阅读 · 0 评论 -
逻辑运算的短路特征
逻辑运算的短路特征 a = 3;b = 4 ;c = 5; r=a>b && ++b >c; a>b 为假 确定r=0 成立 &&后面的++b >c不会运算(||一样) 非短路的逻辑运算符 & | 与短路相反 即使 &&前面确定了结果 ,后面也是要执行。原创 2015-07-26 12:23:16 · 1125 阅读 · 0 评论 -
iOS开发之使用CocoaPods更新第三方出现“target overrides the `OTHER_LDFLAGS`……”问题解决方案
今天在自己的项目中用CocoaPods引入第三方SDWebImage的时候,出现了问题。当更新完毕后,在终端没太注意这个问题的提示,就直接使用SDWebImage了,在使用的时候一些方法的提示和头文件都能引入和使用(看上去SDWebImage可以正常使用),可是一运行就报错(错误是下面给出的错误)。貌似是程序写的有问题,然后就检查程序代码,可是检查不出任何错误,折腾了半天,然后就猛然想起pod u原创 2015-11-03 17:15:51 · 676 阅读 · 0 评论 -
快递100
快递查询http://m.kuaidi100.com原创 2015-10-06 10:09:25 · 650 阅读 · 0 评论 -
从工程中删除Cocoapods
错误: diff: /../Podfile.lock: No such file or directory diff: /Manifest.lock: No s.......1. 删除工程文件夹下的Podfile、Podfile.lock及Pods文件夹2. 删除xcworkspace文件3. 使用xcodeproj文件打开工程,删除Frameworks组下的P原创 2015-10-21 19:19:24 · 440 阅读 · 0 评论 -
使用Xcode修改iOS项目工程名和路径名
旧工程名 MyProject-iPad修改之后 新工程名 FjSk-iPad点击项目,进入可以看到右侧Identity,修改Project Name为:FjSk-iPad,点击enter键,出现点击Rename,出现对话框,提示你是否创建副本。Disable和Enable都不要紧可以看到改完后,很多相关名称都已改变:但是,外面文件转载 2015-10-21 19:54:10 · 528 阅读 · 0 评论 -
iOS 开发 高级:使用 宏定义macros (#,##,...,__VA_ARGS_)
一直以来用宏定义#define也就是定义一些简单的常量,至多也就是定义一个函数,很少关注宏定义的用法。直到看到这样的代码:[cpp] view plaincopy#define PLAYSOUNDEFFECT(...) \ [[GameManager sharedGameManager] playSoundEffect:@#__VA_A原创 2015-11-06 14:04:37 · 1210 阅读 · 0 评论 -
Mac上小巧实用的GIF格式录屏软件 LICEcap
很多时候,作为程序猿,你将不只是一名程序猿,你得会十八般武艺才能笑傲江湖,东方不败。哈哈!!!美工有事请假了,我要临时上岗,打开PS,各种截图。产品请假了,或许我得临时给自己套上产品助理的角色,为刚才遇到的一个产品逻辑问题好好梳理一番,然后理出合理的产品体验,然后便是敲敲敲code了。其实,不只是程序猿,作为其他任何一个岗位的从业者,我们都可能不止会一门技术,其他的领域都或多或少接原创 2015-11-06 18:10:38 · 1513 阅读 · 0 评论 -
用CocoaPods做iOS程序的依赖管理
CocoaPods 简介每种语言发展到一个阶段,就会出现相应的依赖管理工具,例如 Java 语言的 Maven,nodejs 的 npm。随着 iOS 开发者的增多,业界也出现了为 iOS 程序提供依赖管理的工具,它的名字叫做:CocoaPods。CocoaPods项目的源码 在 Github 上管理。该项目开始于 2011 年 8 月 12 日,经过多年发展,现在已经成为 iOS原创 2015-10-21 14:49:48 · 445 阅读 · 0 评论 -
UIViewContentMode各类型效果
UIViewContentModetypedef enum { UIViewContentModeScaleToFill, UIViewContentModeScaleAspectFit, // contents scaled to fit with fixed aspect. remainder is transparent UIVie原创 2015-11-06 16:00:17 · 576 阅读 · 0 评论 -
iOS开发系列--通知与消息机制
概述在多数移动应用中任何时候都只能有一个应用程序处于活跃状态,如果其他应用此刻发生了一些用户感兴趣的那么通过通知机制就可以告诉用户此时发生的事情。iOS中通知机制又叫消息机制,其包括两类:一类是本地通知;另一类是推送通知,也叫远程通知。两种通知在iOS中的表现一致,可以通过横幅或者弹出提醒两种形式告诉用户,并且点击通知可以会打开应用程序,但是实现原理却完全不同。今天就和大家一块去看一下转载 2015-10-10 14:01:44 · 448 阅读 · 0 评论 -
OS X 10.11 cocoapods
cocoaPodssudo gem install cocoapodsgem sources --removehttps:// rubygems.org/gem sources -a https://ruby.taobao.org/gem sources -l—————————————————— ———*** CURRENT SOURCE原创 2015-10-27 19:20:05 · 489 阅读 · 0 评论 -
UIKit入门
main.m 文件int main(int argc,char * argv[]){ @autoreleasepool { return UIApplicationMain(argc, argv,nil, NSStringFromClass([AppDelegateclass])); }}UIApplicati原创 2015-09-23 20:48:44 · 1154 阅读 · 0 评论 -
xib与nib的区别
xib和nib都是Interface Builder的图形界面设计文档,nib这个名字来自于NeXTSTEP系统,在NeXTSTEP被Apple收购之前,一直使用nib作为Interface Builder的图形文档,nib的发展经过了nib2.0,nib3.0,到NeXTSTEP被Apple收购之后,带有NeXTSTEP标志的nib被换成了xib 与nib不同的是,xib是转载 2015-09-23 21:08:32 · 594 阅读 · 0 评论 -
Interface Builder 和UIController的联系
1.Interface Builder(IB工具) xib和nib都是Interface Builder的图形界面设计文档,nib这个名字来自于NeXTSTEP系统,在NeXTSTEP被Apple收购之前,一直使用nib作为Interface Builder的图形文档,nib的发展经过了nib2.0,nib3.0,到NeXTSTEP被Apple收购之后,带有NeXTSTEP标志的ni原创 2015-09-23 21:41:25 · 512 阅读 · 0 评论 -
ios 开发中 动态库 与静态库的区别
使用静态库的好处1,模块化,分工合作2,避免少量改动经常导致大量的重复编译连接3,也可以重用,注意不是共享使用 动态库使用有如下好处:1使用动态库,可以将最终可执行文件体积缩小2使用动态库,多个应用程序共享内存中得同一份库文件,节省资源3使用动态库,可以不重新编译连接可执行程序的前提下,更新动态库文件达到更新应用程序的目的。从原创 2015-10-28 11:30:49 · 667 阅读 · 0 评论 -
iOS9 This application is modifying the autolayout engine from a background thread, which
以前在Xcode7之间项目没有问题,但是使用Xcode7后 突然不好使了,This application is modifying the autolayout engine from a background thread, which can lead to engi....查了查资料 把需要更新UI的放在的主线程就好了。(通过打印[NSThreadcurrentThread原创 2015-11-19 10:46:14 · 727 阅读 · 0 评论 -
一切皆Socket!
“一切皆Socket!”话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket。——有感于实际编程和开源项目研究。我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket?那什么是socket?socket的类型原创 2015-12-16 11:09:21 · 1641 阅读 · 0 评论 -
iOS MKMapView 地图视图
有时候我们做项目可能会用到地图,比如在地图上显示附近人,在微博客户端中显示附近微博。。。所以我们有必要来了解一下关于地图视图地图视图 MKMapView 继承与UIView先来看一下属性吧@property(nonatomic) MKMapType mapType //要显示地图的类型enum {MKMapTypeStandard, //标准地图,显示所有道路和原创 2015-11-29 16:26:07 · 890 阅读 · 0 评论 -
UIWindow简单介绍
UIWindow简单介绍一、简单介绍UIWindow是一种特殊的UIView,通常在一个app中只会有一个UIWindowiOS程序启动完毕后,创建的第一个视图控件就是UIWindow,接着创建控制器的view,最后将控制器的view添加到UIWindow上,于是控制器的view就显示在屏幕上了一个iOS程序之所以能显示到屏幕上,完全是因为它有UIWindow。也就原创 2015-11-29 17:28:23 · 496 阅读 · 0 评论 -
ios button.imageview 和setimage的区别
UIButton的imageView属性是readonly,是不可写的。所以要给button设置图片,必须要用他提供的方法imageForState:(图片保持原大小,会遮挡title)或者backgroundImageForState:(图片自动适应button大小,不遮挡title)原创 2015-11-29 21:15:50 · 903 阅读 · 0 评论 -
Xcode7.1环境下上架iOS App到AppStore 流程 (2)
前言部分 part二部分主要讲解 iOS App IDs 的创建、概要文件的配置、以及概要文件安装的过程。一、iOS App IDs 的创建1)进入如图1所示界面点击右上角箭头所指的加号 进入iOS App IDs添加界面【图1】2)填写App IDs 信息 如图2/3【图2】【图3】3)信息填写完成后原创 2015-12-04 20:20:59 · 841 阅读 · 0 评论 -
Xcode7.1环境下上架iOS App到AppStore 流程 (1)
前言部分 之前App要上架遇到些问题到网上搜上架教程发现都是一些老的版本的教程 ,目前iTunesConnect 都已经迭代好几个版本了和之前的 界面风格还是有很大的差别的,后面自己折腾了好久才终于把自己的App上架,所以一直想写个最新(Xcode7.1~OS X 10.10.5)的 App上架教程,但由于上班忙等各种原因拖拖拉拉终于写好了此文,刚好有个朋友的App让原创 2015-12-04 20:19:02 · 915 阅读 · 0 评论 -
Xcode真机调试(有证书)
1. 开发者证书(Certificates)分为开发(iOS Development)和发布(iOS Distribution)两种,无论是真机调试,还是上传到App Store都需要该证书,是一个基证书,用来证明开发者身份的。2. 应用标识(Identifiers)App IDs,每一个应用的独立标识。可以配置该应用的权限,比如是否用到否用In-App purchase,GameCe原创 2015-12-06 11:22:01 · 1455 阅读 · 0 评论 -
Xcode7.1环境下上架iOS App到AppStore 流程 (3)
前言部分part三 部分主要讲解 Xcode关联绑定发布证书的配置、创建App信息、使用Application Loader上传.ipa文件到AppStore一、Xcode配置发布证书信息1)给应用绑定App ID并添加Team账号 如图1【图1】注意:图中黄色警告处Fix Issue 可修复部分问题,但请勿轻易点击此按钮,如果该账号下存在多个证书他原创 2015-12-04 20:23:01 · 1454 阅读 · 0 评论 -
iOS中得block代码块的定义及使用
现在的无论是框架还是项目中,越来越多的使用block代码块。个人觉得:第一可以使代码看起来更简单明了,第二可以取代以前的delegate使代码的逻辑看起来更清晰。借一张图表达基本定义:(1)最基础的用法案例,可以把block理解为一段类似变量一样的可执行函数代码片段:[objc] view plaincopyprint?原创 2015-12-07 23:31:26 · 592 阅读 · 0 评论 -
枚举中关于toRaw()和fromRaw(3)编译出错
swift 版本问题let friday = WeekDays.Friday.toRaw()改为let friday = WeekDays.Friday.rawValue let thursday = WeekDays.fromRaw(3)改为let thursday = WeekDays.init(rawValue: 3) if (WeekDays.Friday.to原创 2015-12-09 20:31:23 · 572 阅读 · 0 评论 -
UDP收/发广播包原理及步骤
UDP收/发广播包原理及步骤 如果网络中两个主机上的应用程序要相互通信,其一要知道彼此的IP,其二要知道程序可监听的端口。因为同一主机上的程序使用网络是通过端口号来区分的。UDP Socket的使用过程:1. 初始化网络库2. 创建SOCK_DGRAM类型的Socket。3. 绑定套接字。4. 发送、接收数据。5. 销毁套接字。原创 2016-03-31 15:56:02 · 6799 阅读 · 0 评论 -
iOS多线程中performSelector: 和dispatch_time的不同
iOS中timer相关的延时调用,常见的有NSObject中的performSelector:withObject:afterDelay:这个方法在调用的时候会设置当前runloop中timer,还有一种延时,直接使用NSTimer来配置任务。这两种方式都一个共同的前提,就是当前线程里面需要有一个运行的runloop并且这个runloop里面有一个timer。我们知道:只有主线程会原创 2016-03-31 19:41:02 · 464 阅读 · 0 评论 -
数据库操作(使用FMDB)
iOS中原生的SQLite API在使用上相当不友好,在使用时,非常不便。于是,就出现了一系列将SQLite API进行封装的库,例如FMDB、PlausibleDatabase、sqlitepersistentobjects等,FMDB (https://github.com/ccgus/fmdb) 是一款简洁、易用的封装库,这一篇文章简单介绍下FMDB的使用。在FMDB下载转载 2016-04-01 10:05:23 · 429 阅读 · 0 评论 -
FMDatabaseQueue 数据库多线程操作、事务处理
SQLite数据库多线程操作:在上面一节中已经讲过FMDB的用法了,接下来讲讲sqlite在都线程中的用法。如果应用中使用了多线程操作数据库,那么就需要使用FMDatabaseQueue来保证线程安全了。 应用中不可在多个线程中共同使用一个FMDatabase对象操作数据库,这样会引起数据库数据混乱。 为了多线程操作数据库安全,多线程FMDatabaseQueue 这个类在多个线程...原创 2019-10-31 10:37:04 · 4672 阅读 · 0 评论 -
iOS性能优化:Instruments使用实战
最近采用Instruments 来分析整个应用程序的性能.发现很多有意思的点,以及性能优化和一些分析性能消耗的技巧,小结如下。Instruments使用技巧关于Instruments官方有一个很有用的用户使用Guide,当然如果不习惯官方英文可以在这里找到中文本翻译版本PDF参阅.Instruments 确实是一个很强大的工具,用它来收集关于一个或多个系统进程的性能和行为的数据转载 2016-04-03 16:43:53 · 472 阅读 · 0 评论 -
instancesRespondToSelector与respondsToSelector的区别
1. instancesRespondToSelector只能写在类名后面,respondsToSelector可以写在类名和实例名后面。2. [类 instancesRespondToSelector]判断的是该类的实例是否包含某方法,等效于:[该类的实例 respondsToSelector]。3. [类 respondsToSelector]用于判断是否包含某个类方法。原创 2016-04-05 10:32:12 · 268 阅读 · 0 评论 -
GDataXMLNode:xml解析库
一、GDataXMLNode说明GDataXMLNode是Google提供的用于XML数据处理的类集。该类集对libxml2--DOM处理方式进行了封装,能对较小或中等的xml文档进行读写操作且支持XPath语法。使用方法: 1、获取GDataXMLNode.h/m文件,将GDataXMLNode.h/m文件添加到工程中(ps:从下载下来的工程中原创 2016-04-05 17:00:56 · 610 阅读 · 0 评论 -
IOS KeyChain
iOS 7中苹果再一次无情的封杀mac地址,现在已经不能获取ios7设备的物理地址。那么在开发中如何才能标识设备的唯一性呢?apple公司提供的方法是通过keychain来存一些标志信息,然后通过存的标志信息来让应用程序来识别该设备的唯一性。 apple公司写了一个简单的操作keychain的工具类:https://developer.apple.com/library/ios/sampl原创 2016-04-06 11:34:36 · 676 阅读 · 0 评论 -
iOS 中socket的总结
1.什么是socket?socket()函数用于根据指定的地址族、数据类型和协议来分配一个套接口的描述字及其所用的资源。如果协议protocol未指定(等于0),则使用缺省的连接方式。对于使用一给定地址族的某一特定套接口,只支持一种协议。但地址族可设为AF_UNSPEC(未指定),这样的话协议参数就要指定了。协议号特定于进行通讯的“通讯域”。要想理解socket首先得熟原创 2016-03-28 21:41:19 · 597 阅读 · 0 评论