
iOS
smking
这个作者很懒,什么都没留下…
展开
-
Xcode不用数据线也可以真机调试
真机调试的不方便性大家众所周知其实XCode支持不用数据线也可以进行真机调试步骤:前提:需要保证Mac和iphone连同一个wifi信号;把iphone通过usb连上电脑;打开xcode, 菜单 Window - Device and Simulators在弹出的界面中, 选中左侧窗口中对应的设备;在右侧窗口中, 勾选上"Connect via network";然后断开USB线...原创 2020-05-01 14:48:40 · 2022 阅读 · 0 评论 -
atomic, nonatomic在多线程下的表现
需要注意的是, 使用@property (nonatomic, copy) NSString *myname; 这种会自动生成get和set方法而一旦在下面去手动写了下面这个方法,则意味着, 不会自动生成get方法,而只是自动生成set方法, 并生成一个变量_myname;- (NSString *)myname { return theMyname; }而一旦手动实...原创 2020-04-28 21:02:57 · 458 阅读 · 0 评论 -
<iOS>关于自定义description的一点用法
今天在写一段代码时, 自定义了一个UIView, 并且修改了其description 显示, 修改如下:- (NSString *)description { NSLog(@"XXXX"); NSString *selfDes = [NSString stringWithFormat:@"self=%@, yourAge=%d",self, self原创 2013-02-19 14:00:39 · 4580 阅读 · 0 评论 -
<iOS>关于viewWithTag的一点说明
通常我们使用viewWithTag如下情形:如果我们用了一个父View,上面放了多个子view, 每个子view都通过从0开始的Tag值来进行标志,以便于后期在像View上直接使用viewWithTag:tag值来取各个子View而在用[父view viewWithTag:0]取到的view, 发现不是子view, 而是这个父view, 后来才想起苹果文档上提到过一次,tag值较小的,原创 2013-02-19 12:49:27 · 30229 阅读 · 4 评论 -
iOS编程安全之路-RSA签名与验签
RSA作为最主流的加解密与验签算法,iOS当然少不了签名unsigned char *rsaPKCS1SignData(const unsigned char *src,int src_len,unsigned char*pri_key,int pri_key_len, int *dst_len){ unsigned char *pri_pem =转载 2013-02-04 18:12:33 · 6354 阅读 · 1 评论 -
<IOS>当程序崩溃的时候怎么办 Part-2
转自: http://article.ityran.com/archives/1143欢迎回到当程序崩溃的时候怎么办 教程!在这个教程的第一部分,我们介绍了SIGABRT和EXC_BAD_ACCESS错误,并且举例说明了一些使用xcode调试器(Xcode debugger)和异常断点(Exception Breakpoints)解决问题的策略。但是我们的app仍然有一转载 2013-01-17 14:43:42 · 1258 阅读 · 0 评论 -
<IOS>当程序崩溃的时候怎么办 part-1
转自http://article.ityran.com/archives/1006有这样一种情形:当我们正在快乐的致力于我们的app时,并且什么看都是无比顺利,但是突然,坑爹啊,它崩溃了。(悲伤地音乐响起)我们需要做的第一件事就是:不要惊慌。修复崩溃不是很困难的。假如你崩溃了,并且胡乱的改些东西,而且还在不停的念着咒语希望bug神奇的自动消失,你大多数情况下都会使情转载 2013-01-17 14:42:30 · 2210 阅读 · 0 评论 -
iOS常用加密方法(aes、md5、base64)
iOS常用加密方法(aes、md5、base64) 1、AES加密NSData+AES.h文件 // // NSData-AES.h // Smile // // Created by 周 敏 on 12-11-24. // Copyright (c) 2012年 BOX. All rights re转载 2013-01-31 17:46:32 · 1990 阅读 · 0 评论 -
<iOS>iphone技术总结, 在网上找到比较有用的东东,整合一下
iphone技术总结1. 让下面图层可以触摸searchImage.exclusiveTouch = YES;//第一层searchImage.userInteractionEnabled = NO;myMapView.exclusiveTouch = NO;//第二层myMapView.userInteractionEnabled = YES;原创 2013-01-25 16:26:44 · 2726 阅读 · 0 评论 -
NSValue包装结构体,存取于NSArray中
User user={@"张三",2}; NSValue *userValue=[NSValue valueWithBytes:&user objCType:@encode(User)]; NSArray *myArray=[NSArray arrayWithObjects:@"h1",userValue,nil];userValue=[myArray objectAtIndex:转载 2013-02-01 10:34:34 · 3184 阅读 · 0 评论 -
Grad Central Dispatch
GCD 概述1. GCD 包含于 libSystem.dylib2. 可供所有程序使用.- #include 3. GCD API 提供 block-based and function-based variants- 目前仅提供 block-based APIGCD总结1. Blocks- dispatch_async()2转载 2013-01-31 18:30:25 · 1184 阅读 · 0 评论 -
iphone开发中的一些小技巧
经过半年多的iphone开发,我发现在开发过程中最难的就是一些嘈杂的细节,而了解一些小技巧就会达到事半功倍的效果,下面我就总结一下在iphone开发中的一些小技巧。1、如果在程序中想对某张图片进行处理的话(得到某张图片的一部分)可一用以下代码: UIImage *image = [UIImage imageNamed:filename];CGImageRef ima转载 2013-02-01 11:13:07 · 1247 阅读 · 0 评论 -
iphone线程中使用异步网络的问题,以及如何用NSRunLoop来解决
转自:http://kensou.me/blog/?p=233就个人经验而言,在iphone线程中使用异步NSURLConnection的经验可以说是一个完全和愉悦搭不上边的事情。他给我带来的麻烦可真不少。例如,前几天,帮客户定位一个问题的时候发生的事情。事情经过是这样的:客户反馈,无法正常使用我们提供的某个和网络相关的功能,网络回调没有收到。但是其他回调可以正转载 2012-12-25 18:09:14 · 1901 阅读 · 0 评论 -
当异常出现时
在系统抛出异常处设置断点有时候我们的程序不知道跑到哪个地方就 crash 了,而 crash 又很难重现。1: 保守的做法是在系统抛出异常之前设置断点,具体来说是在 objc_exception_throw处设置断点。设置步骤为:首先在 XCode 按 CMD + 6,进入断点管理窗口;然后点击右下方的 +,增加新的 Add Symbolic Breakpoint。在 Symb原创 2013-03-05 21:46:39 · 1604 阅读 · 0 评论 -
Category的实现原理,Load,Initial调用时机
在简书上看到这篇文章,读完欲罢不能。实在是觉得分析得透彻,赶紧转一下。添加少许体会及修改原文地址:https://www.jianshu.com/p/fa66c8be42a2在看这篇文章的同时,可以去下载一下苹果的OC源码,对照分析,更利于体会。而且苹果的源码里面还可以搞清楚好多东西。OC源码下载地址:https://opensource.apple.com/tarballs/objc4/...原创 2019-03-15 20:25:18 · 931 阅读 · 0 评论 -
OC怎么正确的写单例
今天偶然看到一篇文章,有所感触,这才发现写了好久的单例竟然并没有写正确,研究了一下,总结如下:@interface MySingle() &lt;NSCopying, NSMutableCopying&gt;@end@implementation MySingle+ (instancetype)sharedInstance { static MySingle *single =...原创 2018-11-22 18:12:37 · 1406 阅读 · 0 评论 -
Swift 单例写法
shared单例class MyManager {static let shared = MyManager()private init(){}}1。使用static let确保了其单例生成2。使用private init方法,确保这个类对象不会被外部其它地方所生成。...原创 2018-10-10 09:10:31 · 1082 阅读 · 1 评论 -
Swift查看断点变量方法
fr命令fr v -R 来查看断点的变量(lldb) fr v -R firstOne输出如下:(teseon.MyClass) firstOne = 0x0000600003d5ab20 {num = {_value = 1}}po命令(lldb) po firstOne输出如下:<MyClass: 0x600003d5ab20>相比po来说, fr...原创 2018-10-10 09:08:57 · 758 阅读 · 0 评论 -
iOS开发内存分析方法
总结了一下,目前我自己用到的各种方法。Analyze, 静态分析Profile, Instrument, allocations, leaks, time profilers. 内存泄漏、多线程并发Scheme-> Zombie Objects. 内存泄漏视图调试 View Memory Graph Hierarchy. 内存循环引用,这种错误往往非常难查,通过内存逐渐增大...原创 2018-10-09 11:52:41 · 541 阅读 · 0 评论 -
indirect在递归枚举时的使用
枚举时,如果枚举的类型中,还有自己类型做为参数的情况下indirect enum Diagram {case primitive(CGSize, Primitive)case beside(Diagram, Diagram)case below(Diagram, Diagram)case attributed(Attribute, Diagram)case align(CGPoint,...原创 2018-09-29 19:43:27 · 386 阅读 · 0 评论 -
swift escaping逃逸闭包用法
swift escaping逃逸闭包用户func insert (_ region: @escaping Region) -&gt; Region {return { point in !region(point) }}当其中需要执行后才返回, 异步执行的,都需要添加escaping.如方法1.func doWork(block:()-&gt;() ) {block()}调用...原创 2018-09-29 19:42:02 · 1614 阅读 · 0 评论 -
关于copy, mutableCopy, 浅拷贝,深拷贝
随便写一个类, 继承自NSObject, .h文件@interface YIOHOn :NSObject@property (nonatomic,strong) NSString *myName;@end.m文件:@implementation YIOHOn@end使用时: YIOHOn *onObj = [[Y原创 2013-10-24 12:57:26 · 7881 阅读 · 0 评论 -
转一个 Xcode 7 缺少 *.dylib库的解决方法
Xcode7中 Link Binary With Libraries 没有 .dylib库,只能找到对应的 .tbd,但不能代替使用,通过查找资料,尝试后得到以下两种解决方法。方法1. (heqin测试可行)在项目Target中的Link Binary With Libraries 手动添加 首先点击 “+” 显示搜索添加页面,在这里如果搜索之前的libsqlite3.dylib是搜不出来ios转载 2015-10-08 10:31:01 · 29074 阅读 · 3 评论 -
GCD 集中与iOS的多核编程和内存管理
这篇文章转自 http://anxonli.iteye.com/blog/1097777,集中与iOS的多核编程和内存管理,大家完全可以使用苹果的多核编程框架来写出更加responsive的应用。属一篇佳作。多核运算在iOS中concurrency编程的框架就是GCD(Grand Central Dispatch), GCD的使用非常简单。它把任务分派到不同的queue队列来处理。转载 2013-01-31 17:08:28 · 2439 阅读 · 0 评论 -
iPhone开发中的技巧整理
1、NSCalendar用法 -(NSString *) getWeek:(NSDate *)d{NSCalendar *calendar = [[NSCalendar alloc]initWithCalendarIdentifier:NSGregorianCalendar];unsigned units = NSYearCalendarUnit | NSM转载 2013-01-29 21:54:36 · 2097 阅读 · 0 评论 -
为iOS App增加启动渐变效果
由于目前苹果没有支持该功能,所以只能自己在App启动后做一个过度效果:[cpp] - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[[UIWindow alloc]转载 2013-01-29 22:21:08 · 4795 阅读 · 0 评论 -
自定义MPMoviePlayerController的界面
最近由于项目原因需要自定义MPMoviePlayerController,直接在player的的view上面加载其他控件的话,控件是能加上去,但是不能随着player自带的控制试图消失而消失,最后逼不得已打印出来了player的所有子视图,分析出player的试图结构如下图(该结构图是ios6之前的结构图,ios6之后有点变化)。 上图中从上到下是试图的层次,上面的是父转载 2012-12-25 18:04:55 · 13209 阅读 · 2 评论 -
MPMoviePlayerController的一些用法
整理转自:http://blog.youkuaiyun.com/zzfsuiye/article/details/78246921.计算使用MPMoviePlayerController播放的视频的长度有两种方法:第一种方法NSDictionary *opts = [NSDictionary dictionaryWithObject:[NSNumber转载 2012-12-25 18:04:05 · 10387 阅读 · 0 评论 -
什么是CALayer?
注意其中的圆角生成CALayer(这里简单地称其为层)。首先要说的是CALayers 是屏幕上的一个具有可见内容的矩形区域,每个UIView都有一个根CALayer,其所有的绘制(视觉效果)都是在这个layer上进行的。UILabel* lable = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 100, 30)];la转载 2012-12-24 18:34:17 · 1432 阅读 · 0 评论 -
COREANIMATION中如何自定义动画属性
CoreAnimation可以对UIView里的CALayer进行动画处理。它的原理很简单,用户提供一个初始值,终点值和动画持续时间,CoreAnimation自动对 初始值,终点值之间,按照动画持续时间进行插值(生成中间值),生成中间帧,然后在一个单独的线程里进行播放,程序员就不再需要自己去绘制中间帧。CoreAnimation在对CALayer进行动画生成时,需要用户指定对CALaye转载 2012-12-24 18:20:33 · 806 阅读 · 0 评论 -
< iOS >CABasicAnimation用法
CABasicAnimation 自己只有三个property fromValue toValue ByValue当你创建一个 CABasicAnimation 时,你需要通过-setFromValue 和-setToValue 来指定一个开始值和结束值。 当你增加基础动画到层中的时候,它开始运行。当用属性做动画完成时,例如用位置属性做动画,层就会立刻 返回到它的初转载 2012-12-24 11:49:58 · 19996 阅读 · 0 评论 -
MPMoviePlayerViewController播放媒体文件时在ios5.0上的区别--修改
Jacky Shin:NSURL *mediaFileUrl = [NSURL URLWithString:urlStr]; NSString *moviePath = [[NSBundlemainBundle] pathForResource:@"head"ofType:@"mov"]; NSURL *localURL = [[NSURL alloc] i原创 2012-10-08 22:50:19 · 1600 阅读 · 0 评论 -
Blocks编程
介绍声明创建和调用Block和变量Block实际应用1.介绍Block是一个C Level的语法以及运行时的一个特性,非常像标准C中的函数(函数指针),但是其运行需要编译器和运行时支持,目前LLVM+Clang可以很好的支持Block(苹果修改过的GCC也可以)。Block和函数不同的是其语义 闭包 特性,以及可以有匿名block的存在。 你可以在LLVM的官方网站查看Bloc转载 2012-12-24 14:36:21 · 6713 阅读 · 0 评论 -
Mac&iOS之多线程
转一个总结得比较好的文章:转自:http://geeklu.com/2012/02/thread/一.线程概述二.创建线程1.使用NSThread2.使用NSObject3.POSIX Thread三.多线程进阶1.NSOperation & NSOperationQueue2.GCD四.进程间通信1.和主线程的通信2.任意线程间的通信五.Run转载 2012-12-24 14:33:58 · 1240 阅读 · 0 评论 -
关于iOS App的切图
图形用户界面中的图形有两种实现方式,一种是用代码画出来,比如Quartz 2D技术,狠一点有OpenGL ES,另一种则是使用图片。 代码画的方式比较耗费程序员脑力,CPU或GPU; 图片则耗费磁盘空间,会增加app的体积.一般的app我们会偏重于使用图片来构建用户界面. 设计师一般会使用PS来设计界面,所以在直接使用之前,有一个PSD到png的切图(Image Slicing)过程.下面转载 2012-12-24 14:32:33 · 1222 阅读 · 0 评论 -
<iOS>动画组CAAnimationGroup
我们建立了一列基础动画,和简单的增加他们到层上面。如果你想要所有的动画开始在同样的时间,并且他们中每个动画都有同样的执行时间,这个方法是足够了 ?12345678910- (IBAction)animate:(id)sender;{NS转载 2012-12-24 14:31:44 · 7594 阅读 · 1 评论 -
详解在IOS后台执行
转自:http://www.devdiv.com/%E8%AF%A6%E8%A7%A3%E5%9C%A8IOS%E5%90%8E%E5%8F%B0%E6%89%A7%E8%A1%8C-weblog-20-9627.html在IOS后台执行是本文要介绍的内容,大多数应用程序进入后台状态不久后转入暂停状态。在这种状态下,应用程序不执行任何代码,并有可能在任意时候从内存中删除转载 2012-12-25 18:15:56 · 938 阅读 · 0 评论 -
在iphone上创建小型服务器,并且让其处于后台的时候服务器仍然处于运行状态
转自:http://www.mokten.com/2011/12/run-a-web-server-from-an-iphone-app/Run a Web Server from an iPhone AppYoo-Jin Lee Wed, Dec 14, 2011If you ever needed to run a simple web转载 2012-12-25 18:16:19 · 2104 阅读 · 0 评论 -
iOS5新特性:强大的Core Image(教你做自己的美图秀秀))
转自:http://blog.youkuaiyun.com/zhibudefeng/article/details/7957325OS5给我们带来了很多很好很强大的功能和API。Core Image就是其中之一,它使我们很容易就能处理图片的各种效果,色彩啊,曝光啊,饱和度啊,变形啊神马的。可惜苹果一直没能完善官方文档,也没有推出示例代码,所以国内很多同学可能还没有开始使用。但国外的大神们已经证明这转载 2013-01-29 15:35:49 · 1125 阅读 · 0 评论 -
首次发布App,In-App Purchase 无法submit for review 问题的解决方案
转自:http://blog.youkuaiyun.com/nong1209/article/details/7819195一个IDP首次create app 然后首次create new IAP的时候,我们必须把app的状态改成waiting for upload才能测试iap的内部购买,而这个状态下,iap是不能submit for review的。解决方法是:先上传个二进制文件,然后转载 2013-01-25 15:39:26 · 1224 阅读 · 0 评论