一个工程中,Xcode怎么打开多个窗口或者标签
快捷键 : command + T【详细】
ios
2018年02月01日 赞:0 评论:0 阅读:436
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 阅读:345
如何在 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 阅读:401
BAD_ACCESS在什么情况下出现?
· 访问了野指针的时候,比如一个已经释放的对象执行了release、访问已经释放对象的成员变量或者发消息。 · 死循环的时候也会。【详细】
2018年02月01日 赞:0 评论:0 阅读:353
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 阅读:1003
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 阅读:529
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 阅读:382
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 阅读:464
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 阅读:494
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 阅读:507
iOS 使用AVAudioPlayer一直停在prepareToPlay
昨天下午写了个小Demo,使用AVAudioPlayer播放本地音乐的时候,一直停在prepareToPlay的地方。。。 然后百度一下,发现这个问题。。 意思是说,添加了一个异常断点,导致声音不能播放,去掉断点,就可以正常运行了。。【详细】
2017年11月02日 赞:0 评论:0 阅读:455
用 @property 声明的 NSString (或 NSArray,NSDictionary) 经常使用 copy 关键字,为什么?如果改用strong关键字,可能造成什么问题?
因为父类指针可以指向子类对象,使用copy目的是为了让本对象的属性不受外界的影响,使用copy无论是给我传入一个可变对象还是不可变对象,我本身持有的都是一个不可变的副本。 如果我们使用的是strong 的话,那么这个属性如果指向一个可变对象,可变对象在外部被修改的时候,会影响本身的属性。 copy 所表达的所属关系与strong 类似,...【详细】
2017年11月02日 赞:0 评论:0 阅读:607
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 阅读:1642
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 阅读:669
代码托管到github,让更多人看到你的进步
如果有图片显示不全的问题,请转去 我的简书 : 做了许久的挣扎,终于在今天决定,将那惨不忍睹的代码托管到 github ,让更多人可以看到你的进步,其中,最主要是自己,获得心流。 1、打开 github ;// 这将成为自己前进路上的一个分界岭 2、注册账号然后打开,进去之后会看到下面这个页面 3、接下来填写必须的信息,这里 add a license...【详细】
ios GitHub app 不显示
2017年10月17日 赞:0 评论:0 阅读:823
Expected selector for Objective-C method
Xcode报错 Expected selector for Objective-C 如果试了其他的方法没有解决的话,可以试试这个: 整个项目检索 “+//”、 “-//” (因为有时候出错的并不在当前类中),一般就是这两个问题,如果有不合适的,删除// 前面的 + 、- ,应该就正常了。【详细】
ios app 不显示 上架
2017年10月16日 赞:0 评论:0 阅读:746
Objective-C 内存管理机制
一、Objective-C 内存管理的对象 1、内存管理的对象主要有两类: ①基本数据类型:int 、float、 struct 等。 ②引用类型:继承自NSObject类的所有OC对象。 第一种基本数据类型不需要我们管理,第二种需要管理。 2、管理内存的原理: ①值类型一般都会被放入栈中(先进后出),引用类型会被放到堆中,当给对象分配内存空间时,会随机从内存...【详细】
ios app 不显示 上架
2017年10月16日 赞:1 评论:0 阅读:1195
@synthesize 和 @dynamic 分别表示什么
@property 有两个对应的词, @synthesize 和 @dynamic 。如果两个都没写,就表示默认 @synthesize; @synthesize 是如果你没有手动实现 setter 和 getter方法,它会自动帮你生成 setter 和 getter 方法。 @dynamic 是表示用户自己设置,不用编译器帮忙生成 setter 和 getter 方法。如果没有设置 setter 方法,直接使用会导致崩溃。【详细】
ios app 不显示 上架
2017年10月16日 赞:0 评论:0 阅读:1274
weak 属性需要在dealloc中置为nil吗
不需要,在 ARC 环境下,无论是强指针还是弱指针都不需要在 dealloc 中置为 nil ,ARC 会自动处理的。【详细】
ios app 不显示 上架
2017年10月16日 赞:0 评论:0 阅读:1141
iOS 内省方法浅谈
NSObject协议和类定义了很多内省方法,有效的避免错误的进行消息派发、错误的假设对象相等、以及类似的问题。 1、isKindOfClass:Class // 检查对象是否是那个类或者其继承类实例化的对象 2、isMemberOfClass:Class // 检查对象是否是那个类但不包括继承类实例化的对象 if ([item isKindClass:[NSData class]]) { // ... } 如果item是NSMutableData类实例化的对象,而该...【详细】
ios app 不显示 上架
2017年09月28日 赞:0 评论:0 阅读:1568
共68个 共4页 1234
sina weixin mail 回到顶部