自学Swift-斯坦福笔记整理(十六) Camera, Persistence, and Embed Segues

本文详细介绍了UIImagePickerController的使用方法,包括检查图片和视频源类型的可用性、设置摄像头参数、调整编辑选项等。此外,还提供了如何实现文件系统管理和Core Data持久化的指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

UIImagePickerController
class func isSourceTypeAvailable(sourceType: UIImagePickerControllerSourceType) -> Bool
来源类型有 .photoLibrary .Camera .SavedPhotoAlbum

//检查类型
class func availableMediaTypesForSourceType() -> NSArray
KUTTpyeImage
KUTTypeMovie
要使用这两个类型需要导入MobileCoreServices

UIImagePickerControllerCameraDevice.Rear//后置摄像头 或者.Front //前置摄像头

//闪关灯是否可用
class func isFlashAvailableForCameraDevice(UIImagePickerControllerCameraDevice) -> Bool

Editability
var allowsEditing: Bool//是否允许剪切
//限制视频的拍摄
var videoQuality: UIIPCQualityType
.TypeMedium
.TypeHigh
.Type640*480
.TypeLow
.TypeIFrame1280*720
.TypeIFrame960*540
var videoMaximumDuration: NSTimeInterval

当用户操作完毕后代理就会调用
func imagePickerController(UIIPC,didFinishPickingMediaWithInfo info: NSDictionary)
另一个代理//用户点击了取消
func imagePickControllerDidCancel(UIIPC)

var cameraOverlayView: UIView

var showsCamerControls: Bool//为false则隐藏拍照按钮

var cameraViewTransform: CGAffineTransform

Persistence
Archiving 是一种存储一个对象的方法
SQLite
File System
//实现只需要4步
首先.需要有根路径 讲要把文件写入或者读取的路径NSURL
2.需要使用append方法将路径转换成NSURL形式
然后通过这个URL读取或者写入这个文件
最后,管理这个文件系统NSFileManager

文档中搜索NSSearchPathDirectory可以查看到目录
let fileManager = NSFileManager()
let urls: [NSURL] = fileManager.URLsForDirectory(NSSearchPathDictory,inDomain: NSUserDomainMask)
一般能用的SearchPath
NSDocumentsDirectory,NSCachesDirectory,NSDocumentationDirectory

写入通过URL的方法
func URLByAppendingPathComponent(String) -> NSURL

func URLByAppendingPathExtension(String) -> NSURL //e.g. jpg

var ifFileURL: Bool //判断是否为文件URL

写入
NSData
func writeToURL(NSURL,atomically: Bool) -> Bool


Core Data
基本上一个表就像是一个类,表的列(column)就像是实例变量.
UIManagedObjectContext//这个数据库的handel,或者说hook
UIManagedDocument它是对于一个Core Data数据库的封装 iCloud上所有设备都会使用到
func NSEntityDescription.insertNewObjectForEntityForName(String,inManagedObjectContext: UIManagedObjectContext) -> NSManagedObject
let fetchedObjects = managedObjectContext.executeFetchRequest(NSFetchRequest)//搜索
 
func setValue(AnObject!, forKey: String)
func valueForKey(String) -> AnyObjct!

//创建一个子类
class Phtot: NSObject{
     @NSManaged var title: String
}
let photo = NSEntityDescription.insertNewObjectForEntityForName(“Photo”,inMan…)
photo.title = “My First Photo"

NSFetchedResultsController 基本上就是,你给他一个查询请求,然后给它关联一个table view,然后table view就会永远显示查询请求得到的结果哪怕增加了也会显示

Embed Segues
在storyboard里拖拽Container View

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值