ios开发
Sidney星眔
我来到这个城市,寻找属于我的路
展开
-
配置PCH文件及常用宏
配置PCH文件路径$(SRCROOT)/$(PRODUCT_NAME)/PrefixHeader.pchPCH文件#ifdef __OBJC__//导入头文件//宏定义/**获取系统对象*/#define kApplication [UIApplication sharedApplication]#define kAppWindow [UIApplic...原创 2017-06-26 00:17:03 · 252 阅读 · 0 评论 -
修改TableView自带分割线间距
在iOS8.x系统下需要:// 在cellForRowAtIndexPath:if ([cell respondsToSelector:@selector(setSeparatorInset:)]) { [cell setSeparatorInset:UIEdgeInsetsZero]; } if ([cell respondsToSelector:@selector(se...原创 2018-04-09 18:36:05 · 349 阅读 · 0 评论 -
调试发现底部tabbar多出了一截
出现这个问题是因为开启了个人热点,这view其实在debug view不存在,而且这个view高度和热点提示view的高度是一致的原创 2018-04-09 18:43:52 · 428 阅读 · 2 评论 -
自定义控件能实时查看
自定义控件实时查看创建一个xib文件关联某个view在view定义哪里添加IB_DESIGNABLEIB_DESIGNABLE@interface xxView ()@end图片不显示是由于bundel问题,写个UIImage的分类+ (UIImage *)imageWithNamed:(NSString *)name bundleForClass:(Clas...原创 2018-04-10 10:57:34 · 149 阅读 · 0 评论 -
自定义控件能实时查看
自定义控件实时查看创建一个xib文件关联某个view在view定义哪里添加IB_DESIGNABLEIB_DESIGNABLE@interface xxView ()@end图片不显示是由于bundel问题,写个UIImage的分类+ (UIImage *)imageWithNamed:(NSString *)name bundleForClass:(Clas...原创 2018-04-10 10:54:08 · 148 阅读 · 0 评论 -
iOS调优
1.在正确的地方使用 reuseIdentifier数据较大时2.避免过于庞大的xib加载一个XIB的时候会把所有内容都被放在了内存里,包括任何图片,会浪费不少资源。3.不要阻塞主线程一些牵涉读写外部资源的I/O操作,比如存储或者网络的耗时操作,可以异步操作处理,防止阻塞主线程,卡死UI。4.重用和延迟加载不要一次创建所有的subview,而是...原创 2018-04-10 11:02:07 · 141 阅读 · 0 评论 -
Xcode编译报错 Invalid bitcode signature 和linker command failed with exit code 1
如果在你报错详情有armv7等cpu架构字样 可以断定是你active scheme (也就是切换模拟器和真机的地方)是不是一把锤子(Generic iOS Device) 解决方法:就是切换到模拟器或真机就ok了总结:很多时候就是你的调试真机的时候,手机断开数据线了,然后Xcode断了连接,然后就会自动切换到一把==锤子==。而此时你去编译的时候就有可能编译报错...原创 2018-04-10 14:29:53 · 980 阅读 · 0 评论 -
iOS App中断处理
- (void)handleInterruption:(NSNotification *)noti{ AVAudioSessionInterruptionType type = [noti.userInfo[AVAudioSessionInterruptionTypeKey] intValue]; if (AVAudioSessionInterruptionTypeBegan =...原创 2018-04-10 14:36:36 · 653 阅读 · 0 评论 -
iOS简单实现toastView
自定义提示/** 获取指定宽度width的字符串在UITextView上的高度 @param textView 待计算的UITextView @param width 限制字符串显示区域的宽度 @return 返回的高度 */- (float)heightForString:(UITextView *)textView andWidth:(float)width { ...原创 2018-04-10 14:38:22 · 1363 阅读 · 0 评论 -
_SCNetworkReachabilityGetFlags报错
解决方法:加入SystemConfiguration.framework 如果你在工程里面加入了这个framework,还会报三个错误 _SCNetworkReachabilityCreateWithAddress _SCNetworkReachabilityGetFlags linker command failed with exit code 1你只需要把framewor...原创 2018-04-11 10:31:37 · 1059 阅读 · 0 评论 -
UITabBarController title不显示
今天开始新项目的搭建,是经典的TabBar的架子我没有设置TabBarItem的图片,只赋值了title结果文字死活不出来,我本以为是代码的问题,但是当我设置图片后,文字也出来了要显示文字也得设置图片,否则文字的frame计算不出来,无法显示写在这里希望能帮组一些纠结的人,比如像我一样的人...原创 2018-10-29 21:36:39 · 2086 阅读 · 0 评论 -
drawRect显示问题
赋值数据的时候[self setNeedsDisplay]; drawRect只会调用一次,如果需要根据外界的值进行改变,就需要调用setNeedsDisplay,该方法会自动调用drawRect方法原创 2018-04-09 18:25:04 · 752 阅读 · 0 评论 -
关联GitHub仓库报错 fata no upstream branch
出现这种原因,创建GitHub仓库时不是空仓库解决办法:git pull --rebase origin mastergit push origin master 你先从GitHub服务器pull下GitHub上你初始化文件(比如README LICENSE) 这里需要使用--rebase push到GitHub也要指定origin...原创 2018-04-09 18:15:08 · 302 阅读 · 0 评论 -
不同内存区域的耗时操作
空的for循环不耗性能,基本不耗时#pragma mark - 耗时操作- (void)longOperation{ // 性能测试: double start = CACurrentMediaTime(); for (int i = 0; i < 1000000; i++) { //循环内没有任操作 } // 获取时间差值 NSL原创 2017-06-26 08:32:58 · 257 阅读 · 0 评论 -
iOS copy相关
copy与retain的区别:copy是创建一个新对象,retain是创建一个指针,引用对象计数加1.Copy属性表示两个对象内容相同,新的对象retainCount为1,与旧有对象的引用计数无关,旧有对象没有变化,copy减少对象对上下文的依赖.retain属性表示两个对象地址相同(建立一个指针,指针拷贝),内容当然相同,这个对象的retainCount值+1也就是说,retain 是指针拷贝原创 2017-10-29 18:31:42 · 205 阅读 · 0 评论 -
JSON解析问题集锦
NSJSONSerialization精度丢失问题当我们服务器传一个数据3.0(浮点数)Android那边也是3.0,iOS这边却是是2.99999 // 模拟服务器传递过来的JSON数据 NSString *jsonStr = @"{\"71.40\":71.40, \"97.40\":97.40, \"80.40\":80.40, \"188.40\":188.40}";...原创 2017-10-29 18:34:10 · 682 阅读 · 0 评论 -
为什么masonry的block里引用self不需要weak?
为什么masonry的block里引用self不需要weak?这个block只是个栈block,而且构不成循环引用的条件。栈block有个特性就是它执行完毕之后就出栈,出栈了就会被释放掉。看mas_makexxx的方法实现会发现这个block很快就被调用了,完事儿就出栈销毁,构不成循环引用,所以可以直接放心的使用self。 栈是由系统管理的...原创 2017-12-20 14:45:03 · 1861 阅读 · 0 评论 -
Copy与Retain的区别
Copy与Retain的区别:copy是创建一个新对象,retain是创建一个指针,引用对象计数加1.Copy属性表示两个对象内容相同,新的对象retainCount为1,与旧有对象的引用计数无关,旧有对象没有变化,copy减少对象对上下文的依赖.retain属性表示两个对象地址相同(建立一个指针,指针拷贝),内容当然相同,这个对象的retainCount值+1也就是说,retain是指针...原创 2017-12-20 14:47:49 · 497 阅读 · 0 评论 -
iOS开发总结
凡是要求子类重写父类的方法必须先调用父类的这个方法进行初始化操作从系统相册中取照片之前,应该判断系统相册是否可用,如果从相机中拍照获取,要判断相机是否可用计算两点之间的距离在工程中查看是否使用 IDFAJSON的“null” 转换为nil判断是否第一次打开应用调整导航栏左边item距离左边间距NSDateFormatter设定日期格式 AM禁止手机休眠禁用按钮高亮去...原创 2017-12-20 14:54:55 · 457 阅读 · 0 评论 -
字符串为什么要用Copy
字符串为什么要用Copy假如有一个NSMutableString,现在用他给一个retain修饰的NSString赋值,那么只是将NSString指向了NSMutableString所指向的位置,并对NSMutbaleString计数器加一,此时,如果对NSMutableString进行修改,也会导致NSString的值修改,原则上这是不允许的.如果是copy修饰的NSString对象,在...原创 2018-04-09 17:44:47 · 496 阅读 · 0 评论 -
自定义对象的拷贝
自定义对象的拷贝自定义对象如果要浅拷贝就遵守<NSCopying>协议 (copy)自定义对象如果要深拷贝就遵守<NSMutableCopying>协议 (mutableCopy)自定义对象遵守了相关协议,就能够调用相应的深拷贝或者浅拷贝的方法...原创 2018-04-09 17:46:39 · 267 阅读 · 0 评论 -
Block定义成属性为什么用Copy
Block定义成属性为什么用CopyMRC : Block的本质是函数指针,内存地址在栈区,使用Copy是为了把Block由栈区拷贝到堆区,共享给当前对象使用.ARC : Block定义成属性时,使用strong和copy的效果是一样,但是苹果官方建议使用copy...原创 2018-04-09 17:48:35 · 190 阅读 · 0 评论 -
Xcode 常用快捷键
常用快捷键 快捷键 作用 Command + W 关闭窗口,也可以用来关闭模拟器 Command + Option + { 向上移动选中的代码块 Command + Option + } 向下移动选中的代码块 Shift + ←/→ 选中光标左边/右边的一个字符 Command + Shift + ←/→ 选中光标左边/...原创 2017-06-25 09:56:11 · 391 阅读 · 0 评论 -
真机调试报错dyld: Library not loaded: @rpath/AFNetworking.framework/AFNetworking
如果是使用 cocoapods 管理的直接 pod install ,然后删掉~/Library/Developer/Xcode/DerivedData清空DerivedData里的内容原创 2018-04-09 18:12:48 · 2477 阅读 · 0 评论 -
ld: framework not found Xcode编译报错
ld: framework not found出现这种原因是Link Binary With Libraries还存在某些包的.a文件的引用删除即可原创 2018-11-01 18:39:27 · 9504 阅读 · 0 评论