iOS 抛出异常@throw
有时候我们项目需求,需要人为的抛出异常,使程序崩溃退出,这时候就用到@throw了 @throw [NSException exceptionWithName:@"context show" reason:@"crush's reason" userInfo:nil]; 运行程序就会出现如下打印结果: Terminating app due to uncaught exception 'context show', reason: 'crush's reason'【详细】
ios
2018年04月16日 赞:0 评论:0 阅读:168
iOS #import ""和#import <>区别
#import "" 表示引用本地文件// 自己创建 #import <> 表示引用库文件 // 系统文件【详细】
ios
2018年03月26日 赞:1 评论:0 阅读:321
iOS 什么时候调用dealloc
- (void)dealloc; 什么时候回调用dealloc? 1、这个类被release的时候会被调用; 2、这个对象的retain count为0的时候会被调用; 或者说一个对象或者类被置为nil的时候;【详细】
ios
2018年03月26日 赞:0 评论:0 阅读:286
笔记:如何防止别人反编译你的APP
1、本地数据加密 对NSUserDefault、sqlite存储文件数据加密,保护账号和关键信息; 2、URL编码加密 对项目中的URL进行编码加密,防止URL被别人静态解析; 3、网络传输加密 对客户端网络传输数据加密,防止被别人通过网络接口的拦截获取数据; 4、方法体,方法名混淆 方法体和方法名混淆之后,保证源码被逆向之后无法解析代码; 5、程序结...【详细】
ios
2018年03月26日 赞:0 评论:0 阅读:274
iOS GameCenter接入的时候报错“”
iOS GameCenter接入的时候报错如下: Failed to Authenticate player.Error: Error Domain=GKErrorDomain Code=2 "The requested operation has been canceled or disabled by the user." UserInfo={NSLocalizedDescription=The requested operation has been canceled or disabled by the user. 在Stack Overflow上找到一个解决方案,设置->通用->还原->还原所有设置,然后再试一下,看看是不是可以了?【详细】
ios
2018年03月26日 赞:0 评论:0 阅读:213
iOS 项目中接入Game Center
1、首先要先去https://itunesconnect.apple.com 创建一个APP,如果你已经创建了你的应用,就不用新建了。点击APP,然后点击Features(功能),然后你就看到下面的图了: 2、需要新建一个排行榜或者成就,现在点击排行榜 3、然后选择左边的 Single Leaderboard 选项 4、还需要添加至少一种语言 5、保存之后,就OK了。下面添加成就也是同理,这里附上一...【详细】
ios
2018年02月06日 赞:0 评论:0 阅读:920
Review the updated Paid Applications Schedule.
今天在iTunesconnect创建新的APP,然后发现报问题 Review the updated Paid Applications Schedule. 1、直接到 https://itunesconnect.apple.com 首页,看到首页也显示,刚进来的时候没有注意 2、然后可以看到这个协议的位置 3、点进去之后,如下所示: 4、我们可以看到右上角有个Request按钮,好了,点击这个按钮,然后点击Submit提交 5、提交之后就OK了,然后到首...【详细】
ios
2018年02月05日 赞:1 评论:0 阅读:1327
iOS 老项目纠错记 Compiling IB documents for earlier than iOS 7 is no longer supported. ***.xib
前段时间拿到一个10年的老项目,实在是老项目,用Xcode打开之后会报错,很多人都记忆犹新的报错,如下: 修改方案: 改了之后,发现还是会报这个错,然后 command + shift + k 清理缓存,还是不行,重启Xcode,还是不行,关机重启,OK了,问题解决O(∩_∩)O~【详细】
ios
2018年02月01日 赞:0 评论:0 阅读:879
iOS 不同机型屏幕适配
当iPhone手机机型不同的时候,需要考虑到屏幕的适配问题,我们可以先在.pch文件中写上全局变量,之后用到的时候,会方便很多。 // .pch 文件中写 // 判断是iPhone机型 /* * 4s 960 * 640 * 5/5s 1136 x 640 * 6/6s/7/8 4.7英寸 1334 x 750 * 6p/6sp/7p/8p 5.5英寸 1920 x 1080 * X 5.8英寸 2436 x 1125 } */ #define IS_IPHONE_4s [UIScreen instancesRespondToSelector:@selector(currentMode)] ? \ CGSize...【详细】
ios
2018年02月01日 赞:2 评论:0 阅读:1447
一个工程中,Xcode怎么打开多个窗口或者标签
快捷键 : command + T【详细】
ios
2018年02月01日 赞:0 评论:0 阅读:489
c++ 中双冒号(::)的用法
1、表示“域操作符” 例:声明了一个类A,类A里面声明了一个成员函数 void click(),但没有在类的声明里边给出 click 的定义,那么在类外定义 click 时,就要写成 void A::click(),表示这个 click() 函数是类A的成员函数。 // .h 文件中 class OFViewHelper { public: static void setReturnKeyForAllTextFields(UIReturnKeyType lastKey, UIView* rootView); }; void OFViewHelper::setReturnKey...【详细】
2018年02月01日 赞:0 评论:0 阅读:393
如何在 block 中修改外部变量
block 是为了支持并行编程,对于普通的 local 变量,我们就不能在 block 里边修改,因为 block 可以被多个线程并行运行,会有问题的,如果在 block 中修改普通变量,编译的时候也会报错。 有两种方法: · 可以修改static全局变量; · 可以修改用关键字 __block 修饰变量; __block int blockNum = 100; static int staticNum = 100; void (^aBlock)(void) = ^(void) { NSLog...【详细】
2018年02月01日 赞:0 评论:0 阅读:460
BAD_ACCESS在什么情况下出现?
· 访问了野指针的时候,比如一个已经释放的对象执行了release、访问已经释放对象的成员变量或者发消息。 · 死循环的时候也会。【详细】
2018年02月01日 赞:0 评论:0 阅读:410
UITableViewCell右侧小箭头
直接看代码: cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; 当然还有其他的种类咯 typedef NS_ENUM(NSInteger, UITableViewCellAccessoryType) { UITableViewCellAccessoryNone, // don't show any accessory view UITableViewCellAccessoryDisclosureIndicator, // regular chevron. doesn't track UITableViewCellAccessoryDetailDisclosureButton __TVOS_PROHIBITED, // info button w/ chevron. tracks UITableViewCellAccessoryCheckm...【详细】
2017年11月16日 赞:0 评论:0 阅读:1039
AVAudioPlayer 开始和暂停
下面直接上代码 // 这个是定时器,定时更新播放进度 -(NSTimer *)timer{ if (!_timer) { _timer=[NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(updateProgress) userInfo:nil repeats:true]; } return _timer; } // 播放音频 -(void)play{ if (![self.audioPlayer isPlaying]) { [self.audioPlayer play]; self.timer.fireDate=[NSDate distantPast];//恢复定时器 } } // 暂停播放 -(void)pause{ if ([self.aud...【详细】
2017年11月16日 赞:0 评论:0 阅读:556
SpriteKit框架之SKSpriteNode背景图片全屏
调整图片大小的时候不能直接使用frame来调整,这里的frame是readonly属性,要用size来调整。 let background2 = SKSpriteNode.init(imageNamed: "background2") background2.position = CGPoint(x: size.width/2, y: size.height/2) background2.zPosition = -1 background2.size = CGSize.init(width: size.width, height: size.height) // 全屏 addChild(background2)【详细】
2017年11月16日 赞:0 评论:0 阅读:408
swift 关键字inout
关键字inout:当我们需要通过一个函数来改变函数外面变量的值(以引用方式传递)。 通俗的讲:就是使用inout关键字修饰的值,在接下来的方法中可以修改。 代码如下: var test1: CGFloat = 50 func testMethod() { print(test1) // 打印出来是什么??? print("This is a test number: \(test1)") addTestMethod(test2: &test1) print("This is a changed number: \(test1)") } func addTe...【详细】
2017年11月16日 赞:0 评论:0 阅读:489
swift 重命名+-*/=,让它们更强大,为你所用
直接创建一个新的类:MyUtils.swift 将其代码改成如下: import UIKit import Foundation import CoreGraphics func + (left: CGPoint, right: CGPoint) -> CGPoint { return CGPoint(x: left.x + right.x, y: left.y + right.y) } func += ( left: inout CGPoint, right: CGPoint) { left = left + right } func - (left: CGPoint, right:CGPoint) -> CGPoint { return CGPoint(x: left.x - right.x, y: left.y - right.y) } func -= (left: inout CGPoi...【详细】
2017年11月16日 赞:0 评论:0 阅读:522
swift override和final的用法浅谈
报错Method does not override any method from its superclass 报错error 字面翻译过来:这个方法没有重写父类的方法。 override以及final的用法 // 重写父类方法 这里也可以重写父类的属性 override func viewWillAppear(_ animated: Bool) { } // final 修饰词,表示不能重写 可以保护类中的某些实现不被子类重写修改掉 final func setupResignBtn() { }【详细】
2017年11月02日 赞:0 评论:0 阅读:537
iOS 使用AVAudioPlayer一直停在prepareToPlay
昨天下午写了个小Demo,使用AVAudioPlayer播放本地音乐的时候,一直停在prepareToPlay的地方。。。 然后百度一下,发现这个问题。。 意思是说,添加了一个异常断点,导致声音不能播放,去掉断点,就可以正常运行了。。【详细】
2017年11月02日 赞:0 评论:0 阅读:486
共77个 共4页 1234
sina weixin mail 回到顶部