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 阅读:655
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 阅读:257
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 阅读:155
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 阅读:229
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 阅读:254
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 阅读:261
iOS 使用AVAudioPlayer一直停在prepareToPlay
昨天下午写了个小Demo,使用AVAudioPlayer播放本地音乐的时候,一直停在prepareToPlay的地方。。。 然后百度一下,发现这个问题。。 意思是说,添加了一个异常断点,导致声音不能播放,去掉断点,就可以正常运行了。。【详细】
2017年11月02日 赞:0 评论:0 阅读:200
用 @property 声明的 NSString (或 NSArray,NSDictionary) 经常使用 copy 关键字,为什么?如果改用strong关键字,可能造成什么问题?
因为父类指针可以指向子类对象,使用copy目的是为了让本对象的属性不受外界的影响,使用copy无论是给我传入一个可变对象还是不可变对象,我本身持有的都是一个不可变的副本。 如果我们使用的是strong 的话,那么这个属性如果指向一个可变对象,可变对象在外部被修改的时候,会影响本身的属性。 copy 所表达的所属关系与strong 类似,...【详细】
2017年11月02日 赞:0 评论:0 阅读:348
Objective-C 浅谈meta-class (元类)
定义:meta-class 是 Class 对象的类,同样也是个对象。 每个类都必须有一个唯一的 meta-class 。 任何基类的 meta-class 都是他们自己(他们的 isa 指向他们自己)。也就是说 NSObject 的 meta-class 的 isa 指针指向它们自己(是自己的一个实例)。 class 和 meta-class 的继承 和 Class 以 super_class 指针指向它的父类的方法一样,meta-class 以 super_class 指针指向...【详细】
2017年10月17日 赞:0 评论:0 阅读:1286
ARC forbids Objective-C objects in struct
struct objc_usertest { long age; NSString *name; // ARC }USER_TEST; ARC环境下,结构体使用objc对象的时候必须使用__unsafe_unretained struct objc_usertest { long age; __unsafe_unretained NSString *name; }USER_TEST;【详细】
2017年10月17日 赞:0 评论:0 阅读:408
代码托管到github,让更多人看到你的进步
如果有图片显示不全的问题,请转去 我的简书 : 做了许久的挣扎,终于在今天决定,将那惨不忍睹的代码托管到 github ,让更多人可以看到你的进步,其中,最主要是自己,获得心流。 1、打开 github ;// 这将成为自己前进路上的一个分界岭 2、注册账号然后打开,进去之后会看到下面这个页面 3、接下来填写必须的信息,这里 add a license...【详细】
ios GitHub app 不显示
2017年10月17日 赞:0 评论:0 阅读:381
Expected selector for Objective-C method
Xcode报错 Expected selector for Objective-C 如果试了其他的方法没有解决的话,可以试试这个: 整个项目检索 “+//”、 “-//” (因为有时候出错的并不在当前类中),一般就是这两个问题,如果有不合适的,删除// 前面的 + 、- ,应该就正常了。【详细】
ios app 不显示 上架
2017年10月16日 赞:0 评论:0 阅读:327
Objective-C 内存管理机制
一、Objective-C 内存管理的对象 1、内存管理的对象主要有两类: ①基本数据类型:int 、float、 struct 等。 ②引用类型:继承自NSObject类的所有OC对象。 第一种基本数据类型不需要我们管理,第二种需要管理。 2、管理内存的原理: ①值类型一般都会被放入栈中(先进后出),引用类型会被放到堆中,当给对象分配内存空间时,会随机从内存...【详细】
ios app 不显示 上架
2017年10月16日 赞:1 评论:0 阅读:760
@synthesize 和 @dynamic 分别表示什么
@property 有两个对应的词, @synthesize 和 @dynamic 。如果两个都没写,就表示默认 @synthesize; @synthesize 是如果你没有手动实现 setter 和 getter方法,它会自动帮你生成 setter 和 getter 方法。 @dynamic 是表示用户自己设置,不用编译器帮忙生成 setter 和 getter 方法。如果没有设置 setter 方法,直接使用会导致崩溃。【详细】
ios app 不显示 上架
2017年10月16日 赞:0 评论:0 阅读:813
weak 属性需要在dealloc中置为nil吗
不需要,在 ARC 环境下,无论是强指针还是弱指针都不需要在 dealloc 中置为 nil ,ARC 会自动处理的。【详细】
ios app 不显示 上架
2017年10月16日 赞:0 评论:0 阅读:651
iOS 内省方法浅谈
NSObject协议和类定义了很多内省方法,有效的避免错误的进行消息派发、错误的假设对象相等、以及类似的问题。 1、isKindOfClass:Class // 检查对象是否是那个类或者其继承类实例化的对象 2、isMemberOfClass:Class // 检查对象是否是那个类但不包括继承类实例化的对象 if ([item isKindClass:[NSData class]]) { // ... } 如果item是NSMutableData类实例化的对象,而该...【详细】
ios app 不显示 上架
2017年09月28日 赞:0 评论:0 阅读:1119
iOS CoreNFC
iOS 11 中终于引入了NFC,但是目前只是开放了只读的权限。并且只能在 iPhone 7 和 iPhone 7 Plus, 系统更新到iOS11才支持。 苹果官方文档地址 需要App完全在前台模式,开启一个session,每个session最多可以扫描60s,超时的话需要重新开启session,配置读取单个Tag时,读取到第一个Tag的时候自动结束session。 下面我们来做相关配置: 1、TARGETS --> Ca...【详细】
ios app 不显示 上架
2017年09月21日 赞:0 评论:0 阅读:1953
iOS libsqlite3.0.tbd和libsqlite3.tbd的区别
先来看下面的对比照,或许更容易理解一些。 libsqlite3.0.tbd 只是一个快捷方式,其实也是指向libsqlite3.tbd的,如果libsqlite3.0.tbd指向的就是最新的libsqlite3.tbd,就不用更新了。【详细】
ios app 不显示 上架
2017年09月20日 赞:0 评论:0 阅读:1367
iOS Images.scassets对于UIImage加载图片的影响
imageNamed: // 有缓存 imageWithContentsOfFile: // 没有缓存 imageNamed: 可以加载 bundle 中任意位置的图片,包括 main bundle 中其他 bundle 的。 1、如果图片文件名在缓存池中存在,就直接创建对象并返回; 2、如果不存在,就从 bundle 中加载图片数据,创建对象并返回; 3、如果不存在,返回 nil 。 imageWithContentsOfFile: 没有缓存,必须传入图片文件的 全名...【详细】
ios app 不显示 上架
2017年09月05日 赞:0 评论:0 阅读:791
iOS 静态分析Analyze
快捷方式 : command + shift + b Analyze 静态分析分析以下4个问题: 1、逻辑错误; 2、内存管理错误; 3、声明错误; 4、API 调用错误; 因为1、3、4在编译过程都会有警告,Analyze的主要优势在于静态分析内存泄露及部分代码逻辑错误。 // 报错常见 Files with Violations // 违规文件数 Compiler Warnings // 表示项目中的警告 Compiler Errors // 表示编译错误 L...【详细】
ios app 不显示 上架
2017年09月04日 赞:0 评论:0 阅读:625
共24个 共2页 12
sina weixin mail 回到顶部