Farlanki.

Farlanki.

单例模式
单例模式(Singleton)是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。 swift的单例模式由于swift1.2之后支持了类储存属性,可以使用下面的方法简单的实现单例模式 1234567891011class singleton{ static let sharedInstance = singleton() func doSomething() { //d...
AVPlayer 后台播放
在plist中添加Required background modes,然后在appdelegate中加入 1[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil]; 参考:http://stackoverflow.com/questions/4771105/how-do-i-get-my-avplayer-to-play-while-app-is-in-background
UIImage encode的问题
UIImage没有实现encodeWithCoder。 12aCoder.encodeObject(UIImagePNGRepresentation(self.image), forKey: "image")self.image = UIImage(data: aDecoder.decodeObjectForKey("image") as! NSData )
关于userdefault返回值的问题
userdefaul的返回值总是不可变的。例如nsmutablearray 即使显式转换成nsmutablearray,但是使用addobject方法会崩溃。解决方式 1NSMutableArray *loadDefects = [[defaultDefects objectForKey:@"defaultDefects"]mutableCopy];
自定义类加入userdefault
自定义类加入userdefault需要实现NSCoding协议,实现其中的func encodeWithCoder(aCoder: NSCoder) 和 init(coder aDecoder: NSCoder) 在加入userdefault前,把自定义的类转化为NSData就可以了 12var encodedData :NSData = NSKeyedArchiver.archivedDataWithRootObject(myObject) userDefault!.setObject(myObject, forKey: "myObject") 解析: 12var encodedDat...
Provisioning profile
配置文件的使用方法是,在development.apple.com中下载,然后在相应的项目中使用。其中要注意文件所制定的app id ,在team name后面为*的文件可供整个team使用,只要bundle id符合规定。而特定的app id只能在app id相同的项目使用。在配置文件里存在的devices可以进行真机调试。
KVO
kvo机制可以设置被监听者和监听者,当被监听者的某个属性发生变化时,调用监听者的相关方法。 1234567891011//add observer[self.radioRecordArray addObserver:self forKeyPath:@"downloadDidFinished" options:NSKeyValueObservingOptionNew context:Nil];//响应函数-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)c...
创建一个全局的avplayer
在viewcontroller中创建avplayer可能会导致再次进入viewcontroller的时候avplayer重复播放,为解决这个问题,可以在appDelegate中创建一个全局的avplayer,然后在viewcontroller中取得appDelegate的实例然后调用相关函数。 1[(AppDelegate*)[[UIApplication sharedApplication]delegate]startPlayerWithURL:currentURL];
(转)NSString NSURL中的isEqual和==
1.==比较的是两者指针指向的地址是否相同2.isEqual比较的首先是两者指针指向的地址,若相同直接返回yes,不相等再判断是否是同类对象或非空,空或非同类对象直接返回NO,而后依次判断对象对应的属性是否相等,若均相等,返回YES
iOS的streaming audio
AVAudioPlayer不支持基于http url的音频流,其 initWithContentsOfURL:的url必须为本地路径。若要支持音频流,使用core fundation的CFNetwork接口连接一个网络流,例如CFHTTPMessage,然后用Audio File Stream Services (AudioToolbox/AudioFileStream.h)将网络包解析为音频包,再用using Audio Queue Services (AudioToolbox/AudioQueue.h). 播放音频包。 要把AVPlayer类在接口或者属性处声明,才能在各个函数控制A...
avatar
Farlanki
一个多头
FRIENDS