nsstring

ios 获取崩溃日志

…衆ロ難τιáo~ 提交于 2020-02-17 07:03:16
为了更好的维护iosAPP,处理程序崩溃是必需要做的,那么如何收集用户使用时出现的崩溃呢,基本的方法如下: 1.上传appStore的app,可以通过iTunes Stroe获取 2.利用Xcode获取。 3. Crashlytics,Hockeyapp ,友盟,Bugly 等等。 4.通过 iOS SDK中提供了一个现成的函数 NSSetUncaughtExceptionHandler 用来做异常处理 利用NSSetUncaughtExceptionHandler,当程序异常退出的时候,可以先进行处理,然后做一些自定义的动作,并通知开发者,是大多数软件都选择的方法。下面就介绍如何在iOS中实现: 第一步:创建崩溃获取类crash .h文件 /*--> */ /*--> */ @interface Crash : NSObject //// 崩溃时的回调函数 void uncaughtExceptionHandler( NSException *exception); @end .m文件: /*--> */ /*--> */ #import "Crash.h" @implementation Crash void uncaughtExceptionHandler( NSException *exception){ NSArray *stackArry= [exception

ios开发中如何使用sqlite数据库

℡╲_俬逩灬. 提交于 2020-02-15 16:55:36
首先,使用sqlite存储数据,需要添加libsqlite3.dylib 这个动态库,然后 添加动态库的主头文件 #import <sqlite3.h> // db就是数据库的象征,如果要进行CRUD(增删改查),得操作db这个实例 @property (nonatomic, assign) sqlite3 *db; 第一步: 打开数据库。 当系统第一次用到数据库时, 我们先创建一个数据库文件,并创建表,就在这一步。 // 获得数据库文件的路径,即沙盒 NSString *doc = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]; NSString *filename = [doc stringByAppendingPathComponent:@"students.sqlite"]; // 将OC字符串 转成 C语言字符串 const char *cfilename = filename.UTF8String; // 1.打开数据库(如果数据库文件不存在,sqlite3_open函数会自动创建数据库文件) int result = sqlite3_open(cfilename, &_db); // 这个open方法 就是打开数据库

ios应用数据存储方式(归档)

时光总嘲笑我的痴心妄想 提交于 2020-02-15 16:53:43
ios应用数据存储方式(归档) 一、简单说明 在使用plist进行数据存储和读取,只适用于系统自带的一些常用类型才能用,且必须先获取路径相对麻烦; 偏好设置(将所有的东西都保存在同一个文件夹下面,且主要用于存储应用的设置信息) 归档:因为前两者都有一个致命的缺陷,只能存储常用的类型。归档可以实现把自定义的对象存放在文件中。 二、代码示例 1.文件结构 2.代码示例 YYViewController.m文件 9 #import "YYViewController.h" 10 #import "YYPerson.h" 11 12 @interface YYViewController () 13 - (IBAction)saveBtnOnclick:(id)sender; 14 - (IBAction)readBtnOnclick:(id)sender; 15 16 @end 17 18 @implementation YYViewController 19 20 - (void)viewDidLoad 21 { 22 [super viewDidLoad]; 23 } 24 25 26 - (IBAction)saveBtnOnclick:(id)sender { 27 //1.创建对象 28 YYPerson *p=[[YYPerson alloc]init]; 29 p.name

iOS应用数据存储的方式

橙三吉。 提交于 2020-02-15 16:53:01
iOS应用数据存储的方式 XML属性列表(plist)归档 preference(偏好设置) NSKeyedArchiver归档 SQLite3 Core Data 应用沙盒 每个iOS应用都有自己的应用沙盒(应用沙盒就是文件系统目录),与其他文件系统隔离。应用必须待在自己的沙盒里,其他应用不能访问该沙盒 应用沙盒结构分析 应用程序包:包含了所有的资源文件和可执行文件 Document:保存应用运行时生成的需要持久化的数据,iTunes同步设备时会备份该目录。例如,游戏应用可以将游戏存档保存在该目录。 tmp:保存应用运行时所需要的临时数据,使用完毕后再将相应的文件从该目录删除。应用没有运行时,系统也可能会清除该目录下的文件。iTunes同步设备时不会备份该目录。 Library/Caches:保存应用运行时生成的需要持久化的数据,iTunes同步设备时不会备份该目录。一般存储体积大、不需要备份的非重要数据 Library/Preference:保存应用的所有偏好设置,iOS的Settings(设置)应用会在该目录中查找应用的设置信息。iTunes同步设备时会备份该目录 应用沙盒目录的常见获取方式 1. tmp:NSString *tmp= NSTemporaryDirectory( ); 2. Library/Caches:(跟Document类似的有两种方法)

ios应用数据存储方式

心已入冬 提交于 2020-02-15 16:51:18
一、ios应用常用的数据存储方式 1.plist(XML属性列表归档) 2.偏好设置 3.NSKeydeArchiver归档(存储自定义对象) 4.SQLite3(数据库,关系型数据库,不能直接存储对象,要编写一些数据库的语句,将对象拆开存储) 5.Core Data(对象型的数据库,把内部环节屏蔽) 二、应用沙盒 每个iOS应用都有⾃己的应⽤沙盒(应用沙盒就是文件系统目录),与其他文件系统隔离。应⽤必须待在⾃己的沙盒里,其他应用不能访问该沙盒(提示:在IOS8中已经开放访问) 应⽤沙盒的文件系统⽬录,如下图所示(假设应用的名称叫Layer) 模拟器应⽤用沙盒的根路径在: (apple是⽤用户名, 7.0是模拟器版本) /Users/apple/Library/Application Support/iPhone Simulator/7.0/Applications 三、应用沙盒结构分析 应⽤程序包:(上图中的Layer)包含了所有的资源文件和可执行文件 Documents:保存应⽤运行时生成的需要持久化的数据,iTunes同步设备时会备份该目录。例如,游戏应用可将游戏存档保存在该目录 tmp:保存应⽤运行时所需的临时数据,使⽤完毕后再将相应的文件从该目录删除。应用没有运行时,系统也可能会清除该目录下的文件。iTunes同步设备时 不会备份该目录 Library/Caches

iOS -- block

梦想与她 提交于 2020-02-15 10:42:54
Block:一种匿名函数,可以捕获周围的变量 Block是一种匿名函数,Block中可以保存一段代码,它可以作为参数、作为返回值,在需要的时候调用。常用于GCD、动画、各种回调 block 在实现时就会对它引用到的它所在方法中定义的局部变量进行一次只读(const)拷贝,然后在 block 块内使用该只读拷贝 NSString * functionName = @"functionName"; NSString * (^testBlock)(NSString *) = ^NSString * (NSString * name){ myName = @"nana"; // functionName = @"fff"; //报错,不能改变自动变量的值 self.vcName = @"vvvvv"; //没有报错,可以改变变量的值 NSLog(@"%@",name); return name; }; testBlock(@"cc"); 如果想要在block里改变局部变量的值,可以用 __block 修饰符 __block int val = 10; void (^blk)(void) = ^{printf("val=%d\n",val);}; val = 2; blk(); 在Block定义时便是将局部变量的值传给Block变量所指向的结构体

用Instruments解决内存泄露问题

浪子不回头ぞ 提交于 2020-02-12 23:21:02
从 Leopard开始,苹果在XCode系列开发工具中增加了一个新的功能强大的性能调试工具,叫做Instruments。Instruments是一个 非常具有新意的调试工具,如果你使用过iLife中非常简单易用的音乐创作工具GarageBand,你会发现这两者的界面非常类似。能够把开发工具的 UI做成像音乐创作软件的形式,可能也只有苹果能够想到了。 Instrument 里提供了极多的功能,可以针对程序的各个方面进行优化调试。对于初学者来说,虽然这个软件的界面极为友好,完全不同于以往的任何开发调试工具,但是如果能 够有一篇简单的教学,手把手地通过一个例子用Instruments进行调试,那么就更容易上手了。 本篇文章通过一个简单例子,带你学习如何使用Instruments工具解决应用程序中的内存泄露问题,特别适合初学者阅读。在阅读之前,如果你对Objective-C的内存管理还不是十分了解,推荐先阅读本站之前的两篇文章: Objective-C 2.0之前需要了解的:关于Obj-C内存管理的规则 和 关于Objective-C 2.0 的垃圾收集 这样可以更好地理解内存泄露是如何发生的,以及更好地通过本文了解如何快速地解决这一问题。 本文是Matt Long最新的一篇文章,原文为英文,本站已经将其翻译成中文。 原文地址: http://www.cimgf.com/2008/04

苹果开发工具XCode教学:用Instruments解决内存泄露问题

╄→гoц情女王★ 提交于 2020-02-12 23:18:59
苹果开发工具XCode教学:用Instruments解决内存泄露问题 作者: Cocoa China 【最热的Mac, iPhone专业开发论坛】 【本文永久地址】 6 Apr 从Leopard开始,苹果在XCode系列开发工具中增加了一个新的功能强大的性能调试工具,叫做Instruments。Instruments是一个非常具有新意的调试工具,如果你使用过iLife中非常简单易用的音乐创作工具GarageBand,你会发现这两者的界面非常类似。能够把开发工具的UI做成像音乐创作软件的形式,可能也只有苹果能够想到了。 Instrument里提供了极多的功能,可以针对程序的各个方面进行优化调试。对于初学者来说,虽然这个软件的界面极为友好,完全不同于以往的任何开发调试工具,但是如果能够有一篇简单的教学,手把手地通过一个例子用Instruments进行调试,那么就更容易上手了。 本篇文章通过一个简单例子,带你学习如何使用Instruments工具解决应用程序中的内存泄露问题,特别适合初学者阅读。在阅读之前,如果你对Objective-C的内存管理还不是十分了解,推荐先阅读本站之前的两篇文章: Objective-C 2.0之前需要了解的:关于Obj-C内存管理的规则 和 关于Objective-C 2.0 的垃圾收集 这样可以更好地理解内存泄露是如何发生的

OC与JS的交互(iOS与H5混编)

给你一囗甜甜゛ 提交于 2020-02-10 07:05:47
大神总结WKWebView的坑: https://mp.weixin.qq.com/s/rhYKLIbXOsUJC_n6dt9UfA 在开发过程中,经常会出现需要iOS移动端与H5混编的使用场景。 iOS中加载html网页, 可以使用UIWebView或WKWebView. 本篇博客将介绍两种控件使用过程中如何实现OC与JS的交互。 UIWebView delegate 协议方法 //网页即将开始加载 - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType; //网页开始加载 - (void)webViewDidStartLoad:(UIWebView *)webView; //网页加载完成 - (void)webViewDidFinishLoad:(UIWebView *)webView; //网页加载失败 - (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error; //UIWebView自带了一个方法, 可以直接调用JS代码(转化为string类型的js代码)

iOS NSString只保留字符串中的数字

核能气质少年 提交于 2020-02-08 05:38:17
NSString * str = @"123/21年123"; NSCharacterSet *nonDigitCharacterSet = [[NSCharacterSet decimalDigitCharacterSet] invertedSet]; //获取字符串中的数字 str = [[str componentsSeparatedByCharactersInSet:nonDigitCharacterSet] componentsJoinedByString:@""]; NSLog(@"结果是:%@",str); 鸣谢: https://www.cnblogs.com/lulushen/p/9884873.html 来源: https://www.cnblogs.com/gaozhang12345/p/11331665.html