
Object-C编程语言
文章平均质量分 55
enuola
这个作者很懒,什么都没留下…
展开
-
M1芯片:cocoapods安装后kernel_require.rb:54:in `require‘报错
设备:MacBook2023款 M2Pro芯片cocoapods版本:1.9.3。原创 2023-03-01 16:21:55 · 401 阅读 · 0 评论 -
pod update报Xcodeproj doesn't know about the following attributes {"inputFileListPaths"=>[],解决方案
在工程里面进行`pod update`的时候,报如下错误:### Error```RuntimeError - [!] Xcodeproj doesn't know about the following attributes {"inputFileListPaths"=>[], "outputFileListPaths"=>[]} for the 'PBXShellS...原创 2019-12-20 18:16:36 · 1394 阅读 · 2 评论 -
iOS音频AVAudioSession相关设置
1. AVAudioSessionAVAudioSession,是用来管理多个APP间对音频硬件设备(麦克风,扬声器)的资源使用。举例一下AVAudioSession可以做这些事情设置自己的APP是否和其他APP音频同时存在,还是中断其他APP声音 在手机调到静音模式下,自己的APP音频是否可以播放出声音 电话或者其他APP中断自己APP的音频的事件处理 指定音频输入和输出的设备...原创 2019-11-22 14:44:57 · 2022 阅读 · 0 评论 -
Objective-C内存管理教程和原理剖析(三)@property (retain)和@synthesize的默认实现
版权声明此文版权归作者Vince Yuan (vince.yuan#gmail.com)所有。欢迎非营利性转载,转载时必须包含原始链接http://vinceyuan.cnblogs.com,且必须包含此版权声明的完整内容。 版本 1.1 发表于2010-03-08 三 @property (retain)和@synthesize的默认实现在这里解释一下@prop转载 2012-11-11 12:53:22 · 1452 阅读 · 0 评论 -
IOS中获取各种文件的目录路径的方法
iphone沙箱模型的有四个文件夹,分别是什么,永久数据存储一般放在什么位置,得到模拟器的路径的简单方式是什么.documents,tmp,app,Library。(NSHomeDirectory()),手动保存的文件在documents文件里Nsuserdefaults保存的文件在tmp文件夹里1、Documents 目录:您应该将所有de应用原创 2012-10-16 16:40:44 · 113602 阅读 · 5 评论 -
IOS开发网络篇之──ASIHTTPRequest详解
版权归旺财勇士所有〜转载需声名〜原贴地地址:http://wiki.magiche.net/pages/viewpage.action?pageId=2064410被李旭添加,被李旭最后更新于Mar 25, 2011 (查看更改)目录目录发起一个同步请求创建一个异步请求队列请求请求队列上下文ASINetworkQueues,转载 2012-10-21 09:59:56 · 3224 阅读 · 0 评论 -
NSURLConnection 不响应Delegate方法
关于这个问题头疼了很长时间,明明已经写了:self.connection = [[NSURLConnection alloc] initWithRequest:requestLoad delegate:self];connection的delegate代理为self,但是就是不执行其对应的Delegate方法,很少郁闷解决方法就是为这个线程开启一个runloop使它始终处于运行状态原创 2012-10-16 16:52:58 · 8412 阅读 · 3 评论 -
IOS的AppDelegate方法中的事件触发调用
IOS中AppDelegate中的生命周期事件的调用条件://当应用程序将要进入非活动状态执行,在此期间,应用程序不接受消息或事件,比如来电- (void)applicationWillResignActive:(UIApplication *)application{ NSLog(@"应用程序将要进入非活动状态,即将进入后台");}//应用程序已经进入后台运行- (voi原创 2012-10-16 20:41:25 · 13353 阅读 · 0 评论 -
IOS中NSUserDefaults的用法(轻量级本地数据存储)
NSUserDefaults适合存储轻量级的本地数据,比如要保存一个登陆界面的数据,用户名、密码之类的,个人觉得使用NSUserDefaults是首选。下次再登陆的时候就可以直接从NSUserDefaults里面读取上次登陆的信息咯。因为如果使用自己建立的plist文件什么的,还得自己显示创建文件,读取文件,很麻烦,而是用NSUserDefaults则不用管这些东西,就像读字符串一样,直接读取原创 2012-09-09 10:58:01 · 147015 阅读 · 17 评论 -
IOS中输入框被软键盘遮挡的解决办法
做IOS开发时,难免会遇到输入框被键盘遮掩的问题。上网上搜索了很多相关的解决方案,看了很多,但是由衷的觉得太麻烦了。 有的解决方案是将视图上的所有的东西都添加到一个滚动视图对象( UIScrollView )中,然后滚动视图实现输入框不被软键盘覆盖,个人觉得此方案好是好,但是太过麻烦。 有的解决方案是通过一个通知 UIKeyboardDidShowNotification 去实原创 2012-08-28 18:30:34 · 53086 阅读 · 42 评论 -
IOS导航栏的使用方法
本文是使用纯代码实现一个导航栏的效果。单击按钮并且产生事件。基本思路是:1.创建一个导航栏(UINavigationBar对象)2.创建一个导航栏集合(UINavigationItem对象)3.创建一个左边按钮、一个右边按钮(UIBarButtonItem对象),并实现对应的事件方法4.将导航栏集合添加到导航栏中,设置动画关闭5.把左右两个按钮添加到导航栏集合中去6.在视图原创 2012-08-27 20:54:35 · 41581 阅读 · 4 评论 -
为什么delegate属性使用delegate而不是retain?
首先delegate要使用assign而不是retain,这个问题大家通过看iOS的api就可以了,最典型的是tabView里面的delegate和datasource都是用的assign。一个对象没必要管理自己delegate的生命周期,或者说没必要拥有该对象,所以我们只要知道它的指针就可以了,用指针找到对象去调用方法,也就是委托实现的感觉。或者我们换个角度,从内存管理方面也可以解释转载 2012-11-01 12:25:30 · 4937 阅读 · 0 评论 -
UINavigationController点击事件控制隐藏与显示(UITabBarController也同样适用)
@interface ViewController (){ BOOL isflage;}@end@implementation ViewController- (void)viewDidLoad{ [super viewDidLoad]; // Do any additional setup after loading the view from its n原创 2012-11-08 09:45:47 · 5178 阅读 · 0 评论 -
获取IPhone相册中图片的方法(包括获取所有图片)
获取iphone相册方法:方法一:ALAssetsLibraryGroupsEnumerationResultsBlock listGroupBlock =^(ALAssetsGroup *group, BOOL *stop) {if (group!=nil) {[groups addObject:group];} else {原创 2012-11-08 09:55:25 · 50638 阅读 · 1 评论 -
IOS开发之──事件响应
事件出现在iphone上有三种主要方式:通过动作、通过委托事件、通过通知。 iphone事件响应来自于UIResponder对象,而iphone通知来自于NSNotificationCenter。不必担心如何访问响应者的方法和属性,因为UIResponder对象是多数UIKit对象的父级,但是NSNotificationCenter却需要特殊访问。 一、事件和动作转载 2012-11-10 11:39:11 · 2173 阅读 · 0 评论 -
Objective-C内存管理教程和原理剖析(二)口诀与范式
版权声明此文版权归作者Vince Yuan (vince.yuan#gmail.com)所有。欢迎非营利性转载,转载时必须包含原始链接http://vinceyuan.cnblogs.com,且必须包含此版权声明的完整内容。 版本 1.1 发表于2010-03-08 二 口诀与范式1 口诀。1.1 谁创建,谁释放(类似于“谁污染转载 2012-11-11 12:43:45 · 1702 阅读 · 1 评论 -
Objective-C内存管理教程和原理剖析(四)系统自动创建新的autorelease pool
版权声明此文版权归作者Vince Yuan (vince.yuan#gmail.com)所有。欢迎非营利性转载,转载时必须包含原始链接http://vinceyuan.cnblogs.com/,且必须包含此版权声明的完整内容。版本 1.1 发表于2010-03-08 四 系统自动创建新的autorelease pool在生成新的Run Loop的时候,系统会自动创建新的au转载 2012-11-11 12:53:44 · 1459 阅读 · 0 评论 -
Objective-C内存管理教程和原理剖析(一)(autorelease与release)
版权声明此文版权归作者Vince Yuan (vince.yuan#gmail.com)所有。欢迎非营利性转载,转载时必须包含原始链接http://vinceyuan.cnblogs.com/,且必须包含此版权声明的完整内容。版本 1.0 发表于2010-03-08前言初学objectice-C的朋友都有一个困惑,总觉得对objective-C的内存管理机制琢磨不转载 2012-11-11 12:37:47 · 5159 阅读 · 1 评论 -
KVO(NSKeyValueObserving)、KVC(NSKeyValueCoding)作用浅谈
在很多时候接触到很多地方都有对KVC,KVO的描述,但是都是一笔带过.只知道这是Object-C提供的一个不错的机制,可以很好的减少浇水代码。 其实KVC、KVO即NSKeyValueCoding和NSKeyValueCoding的简称。 在官方文档中描述为 那我们KVO、KVC用来做什么的我们又怎么使用它呢? 首先我们先了解下KVO的机制 KVO:当转载 2012-11-11 13:11:19 · 1532 阅读 · 0 评论 -
自动检测iOS网络并可跳转至设置界面设置网络
若不想写繁琐的网络状况判断代码,并且应用程序能自动在无网络时弹出可跳转到系统设置页面的对话框,那么可以考虑这么做。在项目中相应的**info.plist文件中增加一个关键字:SBUsesNetwork应用程序就会自动检测网络状况,在网络异常的情况下,会弹出网络设置对话框提醒用户是否进行网络设置,并且可以跳转至系统设置中进行昂立设置。其实在IOS5.1+之后,苹果就删原创 2012-11-10 15:42:55 · 17216 阅读 · 3 评论 -
IOS中定时器NSTimer的开启与关闭
调用一次计时器方法:myTimer = [NSTimer scheduledTimerWithTimeInterval:1.5 target:self selector:@selector(scrollTimer) userInfo:nil repeats:NO];//不重复,只调用一次。timer运行一次就会自动停止运行重复调用计时器方法:timer = [NSTim原创 2012-10-22 16:58:14 · 186109 阅读 · 30 评论 -
在IPhone桌面的应用程序图标右上角显示数字
能够在ios桌面的程序icon右上角显示数字(badge number)的方法:在ViewController中的viewDidLoad方法中添加如下代码即可:- (void)viewDidLoad{ [super viewDidLoad]; [UIApplication sharedApplication].applicationIconBadgeNumber原创 2012-09-05 15:32:30 · 9016 阅读 · 0 评论 -
IOS文件路径处理方法
常见路径处理方法:+ (NSString *)pathWithComponentsNSArray *)components根据components中的元素来构建路径.- (NSArray *)pathComponents解析路径,返回构成路径的各个部分.- (NSString *)lastPathComponent提取路径中的最后一个组成部分- (NSString原创 2012-08-27 08:07:30 · 9098 阅读 · 0 评论 -
Object-C中对自定义类实现<NSCopying>协议
如果尝试使用自定义类(例如,人类(person类)、地址簿类(myBook类)、分数类(Fraction类))中的copy方法,如 myBook = [myBook mutableCopy]; person = [Person copy];等类似的操作,将会收到一条异常出错的消息,它可能如下所示:-[Fraction copyWithZone:]: unrecognized原创 2012-07-30 11:24:35 · 17344 阅读 · 2 评论 -
NSData的用法(实现文件的复制)
NSData的contentsAtPath:方法仅仅是接受一个路径名,并将指定文件的内容读入该方法创建的存储区;如果读取成功,这个方法将返回存储区对象作为结果,否则(例如该文件不存在或者不能读取),将返回nil方法createFileAtPath:contents:attributes:创建了一个具有特定属性(或者如果attributes参数提供为nil,则采用默认的属性值)的文件。然后,将指原创 2012-07-28 13:55:42 · 7331 阅读 · 0 评论 -
NSFileManager处理目录的一些方法
下面总结了NSFileManager处理目录的一些方法,大多数方法和用于普通文件的方法相同,如下所示:下面是代码示例。出于获得信息的目的,首先获得当前的目录路径,然后,在当前的目录中创建一个名为testdir的新目录(文件夹)。然后使用movePath:toPath:handler:方法将新目录testdir重命名为newdir。另外,这个方法还可以用来将整个目录结构(这就意味着包括目原创 2012-07-28 14:20:08 · 7169 阅读 · 0 评论 -
使用NSFileManager枚举目录种的内容(遍历目录)
需要获得目录的内容列表,使用enumeratorAtPath:方法或者directoryC ontentsAtPath:方法,可以完成枚举过程。如果使用第一种enumeratorAtPath:方法,一次可以枚举指定目录中的每个文件。默认情况下,如果其中一个文件为目录,那么也会递归枚举它的内容。在这个过程中,通过向枚举对象发送一条skipDescendants消息,可以动态地阻止递归过程,从而不原创 2012-07-28 14:50:29 · 15437 阅读 · 0 评论 -
Object-C中NSString类型变量如何从键盘输入字符串
要想从键盘输入一个字符串,并将其赋值给一个NSString类型的变量,可以使用如下方法: char buffer[1000]; //使用一个缓冲区 NSLog(@"请输入一个字符串:"); scanf("%s",buffer); NSString * str = [NSString stringWithUTF8Strin原创 2012-07-26 19:13:48 · 15300 阅读 · 1 评论 -
Object-C实现文件追加方法
将一个文件的内容附加到另一个文件中。通过打开另一个文件用于写入的文件,然后定位到该文件的结尾,最后将第一个文件的内容写入第二个文件中来实现代码如下:#import int main(int argc, const char * argv[]){ @autoreleasepool { NSFileHandle *inFile, *outFile;原创 2012-07-28 18:54:14 · 5947 阅读 · 0 评论 -
使用NSPathUtilities对路径的处理
NSPathUtilities.h包含了NSString的函数和分类扩展,它允许你操作路径名。因该尽可能的使用这些函数,以便使程序更独立于文件系统结构以及特定文件和目录的位置。下面总结了许多常用的使用路径方法。其中,components是一个NSArray对象,它包含路径中每一部分的字符串对象;path是一个字符串对象,它指定文件的路径;ext是表示路径扩展名的字符串对象)(如,@“txt”)原创 2012-07-28 16:19:58 · 2756 阅读 · 0 评论 -
object-c中管理文件和目录:NSFileManager使用方法
对于NSFileManager,文件或目录是使用文件的路径名唯一标识的。每一个路径名都是一个NSString对象,它可以是相对路径名,也可以是完整路径名。相对路径名是相对于当前目录的路径名。所以,文件名file.m意味着当前目录中的file.m。斜线字符用于隔开路径中的目录列表。完整路径名,也称绝对路径名,以斜线“/”开头,斜线实际上就是一个目录,称为 根目录。这个特殊字符(~)用作用原创 2012-07-28 11:39:46 · 8813 阅读 · 1 评论 -
基本文件操作:NSFileHandle的用法
利用NSFilehandle类提供的方法,允许更有效地使用文件。一般而言,处理文件时都要经历以下三个步骤:1.打开文件,并获取一个NSFileHandle对象,以便在后面的I/O操作中引用该文件2.对打开的文件执行I/O操作(读取、写入、更新)3.关闭文件下面总结了一些常用的NSFileHandle的方法,在这个表中,fh是一个NSFileHandle对象,data是一个NSD原创 2012-07-28 17:47:37 · 31054 阅读 · 1 评论 -
Object-C内存 管理规则摘要
内存管理总结:1.释放对象,可以释放它所占用的内存,如果你的程序在运行期间创建了很多对象,应该关注这些对象的释放。良好的规则就是,不再使用创建或保持的对象时,就释放它们。2.发送一条release消息不一定销毁对象,当一个对象的引用计数变为0时,才销毁这个对象。系统通过向该对象发送一条dealloc消息来释放它所占用的内存。3.自动释放池用于在释放池本身时自动释放池中的对象。每次释放池原创 2012-07-30 09:40:20 · 1877 阅读 · 0 评论 -
Object-C中浅复制与深复制
首先先看一下下面的一段代码:#import int main(int argc, const char * argv[]){ @autoreleasepool { NSMutableArray *dataArray = [NSMutableArray arrayWithObjects:原创 2012-07-30 10:34:17 · 6521 阅读 · 0 评论 -
IOS中Json解析的四种方法
作为一种轻量级的数据交换格式,json正在逐步取代xml,成为网络数据的通用格式。有的json代码格式比较混乱,可以使用此“http://www.bejson.com/”网站来进行JSON格式化校验(点击打开链接)。此网站不仅可以检测Json代码中的错误,而且可以以视图形式显示json中的数据内容,很是方便。从IOS5开始,APPLE提供了对json的原生支持(NSJSONSerial原创 2012-08-24 14:00:56 · 317200 阅读 · 38 评论 -
Object-C中获取当前触摸点的坐标位置
//当有一个或多个手指触摸事件在当前视图或window窗体中响应-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ NSSet *allTouches = [event allTouches]; //返回与当前接收者有关的所有的触摸对象 UITouch *touch = [allTouches原创 2012-08-23 16:19:47 · 31800 阅读 · 1 评论 -
XCode中UILable的基本用法
//UILable的大小自适应实例 UILabel *myLable = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 2, 2)];//设定位置与大小 [myLable setFont:[UIFont fontWithName:@"Helvetica" size:20.0]];//格式 [myLable setNumber原创 2012-08-23 15:26:47 · 9820 阅读 · 0 评论 -
IOS中的RGB颜色值
在IOS中RGB颜色值范围为(0.0 ~ 1.0)假设颜色值RGB(135,200,0),那么在ios代码中是这样的RGB(135/255, 200/255 , 0/255)原创 2012-08-23 16:48:05 · 7709 阅读 · 0 评论 -
UIALertView的基本用法与UIAlertViewDelegate对对话框的事件处理方法
首先,视图控制器必须得实现协议UIAlertViewDelegate中的方法,并指定delegate为self,才能使弹出的Alert窗口响应点击事件。具体代码如下:ViewController.h中的代码如下:#import @interface ViewController : UIViewController@endViewController.m中的原创 2012-08-23 15:57:49 · 111662 阅读 · 16 评论 -
NSDictionary和NSMutableDictionary例子微解
//创建不可改变的词典 NSDictionary * dictionary; dictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"good lucky",@"why",@"bye bye",@"how",nil]; //里面的元素个数是奇数(不包括最后的 nil)的话是不可以的,偶数才行,因为是 id ke转载 2012-08-30 09:02:39 · 4662 阅读 · 0 评论