- 博客(52)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 获取设备 AirPods、Apple TV、Apple Watch、HomePod、iPad、iPad Air、iPad Pro、iPad mini、iPhone、iPod touch的型号
获取设备平台 AirPods、Apple TV、Apple Watch、HomePod、iPad、iPad Air、iPad Pro、iPad mini、iPhone、iPod touch+ (NSString *)devicePlatForm{ struct utsname systemInfo; uname(&systemInfo); NSString *platform = [NSString stringWithCString:systemInf
2021-02-05 15:29:11
1154
2
原创 模态出来报错:Application tried to present modally an active controller
在presentViewController控制器的时候加上判断presentViewController是否为nil即可。if (self.presentedViewController == nil) { [self presentViewController: imagePickerController
2016-03-16 14:20:31
7339
1
原创 iOS开发 检测字符串是否是空字符串
- (BOOL)isBlankString:(NSString *)string { if (string == nil || string == NULL) { return YES; } if ([string isKindOfClass:[NSNull class]]) {
2015-10-15 21:59:17
497
原创 iOS软件开发 快速将p12文件转pem
openssl pkcs12 -inCertificates.p12-out Certificates.pem-nodes //inCertificates.p12 导出的p12文件 Certificates.pem 生成的pem文件
2015-10-12 17:55:15
489
原创 iOS软件开发 如何做一个选择器
由于苹果没有提供创建选择器的类,所以自己做了一个选择器,主要是通过UIButton来实现,希望可以帮助大家,如果有不好的地方希望能给我提出来。下面是我选择器实现的方法#import "ViewController.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad
2015-10-06 15:50:54
542
原创 iOS软件开发 Core Data的使用
一、概念1.Core Data 是数据持久化的一种方式2.数据最终的存储类型可以是以下几种:3.好处:能够合理管理内存,避免使用sql的麻烦,高效4.构成:(1)NSManagedObjectContext(被管理的数据上下文)操作实际内容(操作持久层)作用:插入数据,查询数据,删除数据(2)NSManagedObjectModel(被管理的数据模型)作
2015-10-05 21:17:32
410
原创 ios软件开发 解决删除cell视图遮挡删除按钮的问题
今天在项目中遇到一个问题,就是删除自定义cell时,cell下面的删除按钮视图被遮挡的了。如果是向左滑动删除视图没有任何影响,如果是通过下面的方法则会出现遮挡的问题- (void)setEditing:(BOOL)editing animated:(BOOL)animated;解决办法:在自定义cell类中添加如下代码即可解决遮挡的问题- (void)layou
2015-10-03 21:27:55
465
转载 Mac下svn command命令
转载:Mac下svn command命令svn help command 获取子命令说明svn info $URL 查看工作空间信息svn list 显示当前目录下svn记录文件列表,不访问版本库svn list $URL 不下载到本地查看目录中的文件svn log 5:19 查看版本5到19的历史信息svn log 查看当前目录的历史修改信息svn l
2015-10-01 21:03:31
399
原创 iOS软件开发 类目延展协议的使用
1、类目 类目(Category)的基本概念 封装是面向对象的一个特征,OC也不意外,但是有的时候我们会碰到这样一种情况,比如我封装了一个类,不想再动它了,可是随着程序功能的增加,需要在那个类中增加一个小小的方法,这时我们就不必在那个类中做修改或者在定义一个子类,只需要在用到那个方法时随手添加一个该类的类别(category)即可 (1)在类目定义的方法,会成为原始类的一部分,
2015-10-01 20:26:20
490
原创 iOS软件开发 内存管理之拷贝
1、copy与retain的区别: copy 是创造一个新的对象 而retain只是让对象的引用计数+1 copy出来的新对象 不会依赖旧的对象 retain 改变对象 示例: NSMutableString *string = [NSMutableString stringWithString:@"1111"]; // [string retain]; //
2015-09-30 21:47:57
437
原创 ios软件开发 NSDate
1、NSDate 时间格式 2、NSTimeInterval 时间间隔 3、NSDateFormatter 时间格式器 用于日期对象的格式化或者字符串解析为日期对象 时间格式 NSDate1、获取GMT时间NSDate *date = [NSDate date]; 2、时间间隔 NSTimeInterval3、通过时间间隔 获取将来时间
2015-09-30 20:33:20
351
原创 iOS软件开发 数据存储之SQLite3
一、什么是SQLite1、SQLite是一款轻型的嵌入式数据库2、它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了3、它的处理速度比Mysql、PostgreSQL这两款著名的数据库都还快二、什么是数据库1、数据库(Database)是按照数据结构来组织、存储和管理数据的仓库2、数据库可以分为2大种类3、关系型数据库(主流)4、对象型数据库
2015-09-30 17:44:19
397
原创 ios软件开发 json格式字符串转字典,字典转json格式字符串
json格式字符串转字典,字典转json格式字符串/** * 把json格式字符串转字典 * * @param jsonString JSON格式的字符串 * * @return 返回字典 */+ (NSDictionary *)dictionaryWithJsonString:(NSString *)jsonString { if (jsonString
2015-09-30 14:55:52
478
原创 iOS软件开发 设置UITextView输入内容位置从左上角开始
昨天在使用UITextView时,发现输入起始位置不在左上角,而是从中间开始,所以研究了一下,发现只要加上下面一行代码即可搞定。self.automaticallyAdjustsScrollViewInsets=NO;
2015-09-22 08:54:10
3134
原创 ios软件开发 设置cell之间的间距
这两天在项目中遇到一个问题,就是需要将cell之间留出一点间距,一般我们在创建出cell都会有分割线加以区分,所以自己想了一下cell之间的间距如何实现。cell之间的间距实现方法我想到的有两种,首先来说第一种:一、利用UITableCell的UILayer里面的borderWidth属性来设置cell之间的间距。代码实现如下#import "ViewController.h"@int
2015-09-20 12:38:05
1314
原创 iOS软件开发 错误集之不能使用CGRect和CGFloat解决办法
今天学习根据内容高度来调整cell的高发现在继承NSObject中不能使用CGRect和CGFloat,后来查阅了一下资料,原来是XCode在6.0版本以前会将UIKit框架一起导入,XCode6.0以后的版本都只导入了Foundation框架,所以只需要导入UIKit框架即可使用CGRect和CGFloat
2015-09-19 12:32:50
2015
原创 iOS软件开发 设置启动页面
设置启动页面只需要两步即可完成第一步:将需要作为启动页面的图面按照要求将尺寸设置好,尺寸要求我已经直接在截图上写明白,命名方式需要严格按照苹果官方提供的命名方式,否则会出现错误。注意:图片格式一定要是.png格式的,否则设置好没有图片第二步:打开targets,就是左边最上面那个。进去之后选择General,找到App Icons and Launch Images选择
2015-09-16 14:18:44
688
原创 iOS软件开发 设置cell动画效果
通过下面的代码可以实现UITableCell的动画实现,只需要在有表格视图的地方加上下面的代码即可。前提是创建的cell显示数要大于屏幕显示数- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath{
2015-09-15 20:36:48
539
原创 iOS软件开发 设置启动页面时间
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. //实质就是线程睡眠
2015-09-15 20:27:49
479
原创 iOS软件开发 获取相册图片或照相
从相册获取相片或者照相需要实现UIImagePickerControllerDelegate, UINavigationControllerDelegate这两个协议,下面是具体的实现方法- (void)addImage{ UIActionSheet *actionsheet = [[UIActionSheet alloc] initWithTitle:nil de
2015-09-13 21:58:57
612
原创 iOS软件开发 裁剪图片
- (UIImage *)image:(UIImage*)image byScalingToSize:(CGSize)targetSize { UIImage *sourceImage = image; UIImage *newImage = nil; UIGraphicsBeginImageContext(targetSize); CGRect
2015-09-11 20:38:33
465
原创 iOS软件开发之在UIScrollView上添加手势不能触发解决办法
//在UIScrollView上添加手势不能触发解决办法//在工程中创建一个UIScrollView类别即可解决问题@implementation UIScrollView (UITouch)- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { [[self nextResponder] touches
2015-09-03 14:24:26
2199
原创 ios软件开发 获取手势点击视图的tag
代码实现如下:- (void)viewDidLoad { [super viewDidLoad]; for (int i = 0; i < 3; i ++) { UIView *view = [[UIView alloc] initWithFrame:CGRectMake(20 + (100 + 17) * i, 100, 100, 50)];
2015-09-02 17:12:39
708
原创 iOS学习总结之多线程编程NSOperation & NSOperationQueue
1、NSOperationQueue(操作队列)是由GCD提供的队列模型的Cocoa抽象,是一套Objective-C的API2、GCD提供了更加底层的控制,而操作队列则在GCD之上实现了一些方便的功能,这些功能对于开发者而言通常是最好最安全的选择队列及操作NSOperationQueue有两种不同类型的队列:主队列和自定义队列1、主队列运行在主线程上2、自定义队列在后台执行
2015-09-02 08:59:20
384
原创 iOS学习总结之导航控制器
一、初始化 ViewController *viewController = [[ViewController alloc]init];// 导航控制器初始化 设置导航控制器的第一个页面 UINavigationController *nv = [[UINavigationController alloc]initWithRootViewController:viewC
2015-09-01 14:06:12
319
原创 iOS学习总结之沙盒和归档
沙盒 归档 一、沙盒(sandbox)1、iOS的沙盒(sandbox)机制:是一种安全体系 iOS应用程序只能对自己创建的应用程序进行读取文件 这个独立、封闭、安全的空间 就是沙盒。它里面一般存放着你的程
2015-09-01 08:19:15
394
原创 iOS学习总结之清理缓存
#import "ViewController.h"@interface ViewController ()@property (nonatomic, strong) UIAlertView *alertView;@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad];
2015-08-31 22:29:40
373
原创 iOS学习总结之多线程编程(NSThread)-线程的状态
终止子线程(3种方式) 1、线程执行体方法结束线程正常结束 2、线程执行过程出现了错误 3、直接调用NSThread类的exit方法来终止当前正在执行的线程 子线程启动和主线程拥有相同的地位 测试某个线程是否正在运行可以调用线程对象的isExecuting(正在执行返回YES)、isFinished(线程执行完成返回YES)方法
2015-08-30 22:16:55
359
原创 iOS学习总结之多线程编程(NSThread)
这一久正在学习多线程编程,现在将自己学习总结跟大家分享一下iOS提供了如下3种多线程编程的技术 >使用NSThread实现多线程 >使用NSOperation与NSOperationQueue实现多线程 >使用GCD(Grand Central Dispatch)实现多线程 这三种编程方式从上到下 抽象度层次是从低到高的 抽象度越高的用法越简单
2015-08-30 22:03:44
338
原创 iOS学习总结之网络编程
今天刚刚自学完网络请求,现将两种请求方式总结如下所有网络请求 统一使用异步请求 GET请求 1、URL 2、NSURLRequest 3、NSURLConnction 异步自己搭建的本地服务器 ,没有安装服务器的可以安装一下,方便练习#pragma mark-GET登录- (void)getLogin{/
2015-08-30 20:53:37
416
原创 iOS学习总结之UI框架UI之文本输入控件( UITextField)
一、文本输入控件( UITextField)1、初始化方式UITextField *textField = [[UITextField alloc]initWithFrame:CGRectMake(, , , );2、属性和方法1>设置边框风格textField.borderStyle = UITextBorderStyleRoundedRect;2>设置提示的文字 当编辑
2015-08-30 20:48:20
463
原创 iOS学习总结之UI框架UIWindow和UIView(附带计时器学习)
一、UIWindow1、UIWindow的概念UIWindow(窗口) 通过这个窗口 可以看到窗口的内容。iOS里面一般只有一个窗口(UIWindow) 用于管理、协调应用中显示的控件。2、主要作用:1)它是个容器 给view(视图) 提供展示的区域 2)将事件(如:旋转、点击等)分发给 view3、UIWindow 其实也是一个view(视图) 继
2015-08-30 20:34:09
429
原创 iOS学习总结之UI图层关系与center
一、center(中心)1>相对于它的父视图来说的(如果改变中心点的位置 视图的位置也会发生变化)。2>中心点计算 X = x + w/2 Y = y + h/23>获得中心的方法 方法一 view.center = CGPointMake(200, 300); 方法二view.center = CGPointMake([UIScreen mainScreen]
2015-08-30 20:31:53
286
原创 iOS学习总结之UI-IB
1.IBAction:1>能保证方法可以连线2>相当于void2.IBOutlet:1>能保证属性可以连线3.常见错误setValue:forUndefinedKey:]: this class is not key value coding错误原因是:连线出问题了4.Xcode5开始的一些建议把用于连线的一些方法和属性声明在.m文件的类
2015-08-30 20:28:37
463
原创 单例(Singleton)模式
单例(Singleton)模式 一、如果一个类始终只能创建一个实例,则这个类被称为单例类。单例类可通过static全局变量来实现,程序考虑定义一个static全部变量,该变量用于保存已创建的Singleton对象——每次程序需要
2015-08-17 08:29:24
412
原创 block(闭包)
block(闭包) 1.block(闭包):又叫代码块。是一个独立的整体,可以当做参数来传递。2.black:也算是一个函数。3.black能够读取其它函数的内部变量。4.black可以访问、修改内部变量(修改内部变量需要在修改的变量前加__black)。
2015-08-17 08:28:04
548
原创 KVC、 KVO
KVC、 KVO 一、KVC1.KVC(Key-Value-Coding):键值编码。 1)是一种存取值的方式。通过key存value 或者通过key获取value。 2)key从哪里来? key把对象里面的属性名、变量名当做了一个key(
2015-08-12 23:00:46
289
原创 内存管理、copy、深浅拷贝
内存管理、copy、深浅拷贝 一、内存管理1.内存管理的核心:谁分配、谁释放。2.引用计数器加1的有:alloc、new、copy、retain。3.引用计数器减1的有:release、autorelease。注意:有retain就有release。4.延迟释放(autorelease):和自动释放池配合使用
2015-08-12 16:55:28
555
原创 手工内存管理规则的总结
手工内存管理规则的总结 下面是一些不使用垃圾收集或ARC编译的项目规划:1.如果需要保持一个对象不被销毁,可以使用retain。在使用完对象后,需要使用release进行释放。2.给对象发送release消息并不会必须销毁这个对象,只当这个对象的引用计数减至0时,对象才会被销毁。然后系统会发送dealloc消息给这个对象用于释放它的内存。3.对使
2015-08-12 08:31:16
323
原创 内存管理器
内存管理器 一、手动计数器(MRC)1.引用计数 1)每个对象有一个整数值,这个整数值与对象本身关联,称为引用计数器。每个引入计数器占四个字节。 2)当某些地方需要使用这个对象时,可以将引用计数器加1,表示需要使用这个对象。 3)使用完毕之后,将该对象的引用计数器值减1,表示
2015-08-10 22:46:21
685
iOS开发选择图片回调错误
2016-11-09
TA创建的收藏夹 TA关注的收藏夹
TA关注的人