iOS保存视频、图片到相册

保存图片
swift 4.0

//MARK:- save image
func WM_FUNC_saveImage(_ image:UIImage) -> Void {
UIImageWriteToSavedPhotosAlbum(image, self, #selector(image(_:didFinishSavingWithError:contextInfo:)), nil)
}
@objc func image(_ image: UIImage, didFinishSavingWithError error: NSError?, contextInfo: UnsafeRawPointer) {
if let error = error {
// we got back an error!
let ac = UIAlertController(title: “Save error”, message: error.localizedDescription, preferredStyle: .alert)
ac.addAction(UIAlertAction(title: “OK”, style: .default))
present(ac, animated: true)
} else {
let ac = UIAlertController(title: “Saved!”, message: “Your altered image has been saved to your photos.”, preferredStyle: .alert)
ac.addAction(UIAlertAction(title: “OK”, style: .default))
present(ac, animated: true)
}
}

OC

//image是要保存的图片
– (void) saveImage:(UIImage *)image{
if (image) {
UIImageWriteToSavedPhotosAlbum(image, self, @selector(savedPhotoImage:didFinishSavingWithError:contextInfo:), nil);
};
}
//保存完成后调用的方法
– (void) savedPhotoImage:(UIImage*)image didFinishSavingWithError: (NSError *)error contextInfo: (void *)contextInfo {
if (error) {
NSLog(@”save error%@”, error.localizedDescription);
}
else {
NSLog(@”save success”);
}
}

保存视频
swift4.0

//MARK:- save video
func WM_FUNC_saveVideo(_ urlStr:String) -> Void {
UISaveVideoAtPathToSavedPhotosAlbum(urlStr, self, #selector(videoSaveStatus(_:didFinishSavingWithError:contextInfo:)), nil)
}
@objc func videoSaveStatus(_ urlstr: String, didFinishSavingWithError error: NSError?, contextInfo: UnsafeRawPointer){
if error != nil {
//error
}else{
//success
}
}

OC

//videoPath为视频下载到本地之后的本地路径 URL.path
– (void)saveVideo:(NSString *)videoPath{
if (_videoPath) {
if (UIVideoAtPathIsCompatibleWithSavedPhotosAlbum([_videoPath path])) {
//保存相册核心代码
UISaveVideoAtPathToSavedPhotosAlbum([_videoPath path], self, @selector(video:didFinishSavingWithError:contextInfo:), nil);
}
}
}
//保存视频完成之后的回调
– (void)video:(NSString *)videoPath didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo {
if (error) {
NSLog(@”save error%@”, error.localizedDescription);
}
else {
NSLog(@”save success”);
}
}

iOS常用技术点列表

技术点:

1.热更新 (及时解决线上问题)

2.runtime(json解析、数据越界、扩大button点击事件、拦截系统方法)

3.即时通讯

4.底层的封装

5.https兼容(单项验证、双向验证)

6.aso优化(用户留存、日活跃分析、关键词)

7.视图流畅的帧数

8.sdwebimage的实现原理

9.afnetworking的实现原理

10.消息机制

11.vc的生命周期

12.内存管理

13.证书管理发布流程

14.js交互

15.mvvm和mvc框架

16.迪斯尼动画(动画框架)

17.数据持久化存储

18.加密技术

19.二维码扫描 (qq快速登录)

20.数据库版本迭代迁移

21.第三方登录分享

22.用户反馈(以前用友盟现在不提供了,阿里百川)

23.数据统计(分析更进业务)

24.kvc、kvo、notificion、delegate(算是消息机制的几种)

25.GCD多线程

26.swift语言(桥接)

27.APNS消息推送机制

28.算法(冒泡法等算法)

29.正则表达式

30.公司业务流程,说一些跨平台的会更好,浅谈一下微信小程序(好于坏)

31.iOS组件化开发(现在流行的热点)

画菱形

画菱形
题目 打印出如下图案(菱形):
    *
   ***
  *****
 *******
  *****
   ***
    *
程序分析 递归调用即可。
1
def draw(num):
    a=”*”*(2*(4-num)+1)
    print(a.center(9,’ ‘))
    if num!=1:
        draw(num-1)
        print(a.center(9,’ ‘))
draw(4)

斐波那契数列II

斐波那契数列II
题目 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。
1
程序分析 就是斐波那契数列的后一项除以前一项。
1
a = 2.0
b = 1.0
s = 0
for n in range(1,21):
    s += a / b
    a,b = a + b,a

猴子偷桃

猴子偷桃
题目 猴子吃桃问题:猴子*天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求*天共摘了多少。
1
程序分析 按规则反向推断:猴子有一个桃子,他偷来一个桃子,觉得不够又偷来了与手上等量的桃子,一共偷了9天。
1
peach=1
for i in range(9):
    peach=(peach+1)*2
print(peach)

递归输出

递归输出
题目 利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。
1
程序分析 递归真是蠢方法。
1
def rec(string):
    if len(string)!=1:
        rec(string[1:])
    print(string[0],end=”)
rec(input(‘string here:’))

对于一个新手运维如何才能做好一个大型的网站服务器的运维呢

对于一个新手运维如何才能做好一个大型的网站服务器的运维呢,平时应该注意些什么事项?

运维 新手 服务器 大型12 条回复 • 2017-05-14 20:22:25 +08:00
ytmsdy 1
ytmsdy 2017-05-06 12:19:13 +08:00 via iPhone
不要用 rm -rf / 这个命令就可以了!
corvofeng 2
corvofeng 2017-05-06 12:49:34 +08:00 via Android ❤️ 1
把所有文件都备份了, 然后试着搞挂一次,再恢复了,你就不再是新手了?
coo 3
coo 2017-05-06 13:35:12 +08:00
新手如何打 Boss ?急,在线等。

https://search.jd.com/Search?keyword=%E8%BF%90%E7%BB%B4&enc=utf-8
xderam 4
xderam 2017-05-07 00:52:15 +08:00
经常思考自己为什么那么苦逼就可以了。
xifengzhu 5
xifengzhu 2017-05-07 09:59:24 +08:00
备份,备份,备份
julyclyde 6
julyclyde 2017-05-07 21:34:26 +08:00
作为一个十年经验,其中 5.5 年在国内某行业*的老同志,我给你的忠告就是:
首先,要认真
julyclyde 7
julyclyde 2017-05-07 21:35:08 +08:00
其次,吃过的亏要记住,别犯第二次
wangzhangwei 8
wangzhangwei 2017-05-08 10:35:04 +08:00
跟着你的领导学习,减少犯错误,不断总结,*后走向人生巅峰。
abel163 9
abel163 2017-05-08 19:13:03 +08:00
要细心,要谨慎,备份,备份
qq1242245799 10
qq1242245799 2017-05-09 10:55:06 +08:00
@abel163 哦,是吗?我感觉各位大佬都是大水 b,直接说要香港服务器找我就对了