swift緩存
① ios swift中的pct文件用設置路徑嗎
1、模擬器沙盒目錄 文件都在個人用戶名文件夾下的一個隱藏文件夾里,中文叫資源庫,他的目錄其實是Library。 因為應用是在沙箱(sandbox)中的,在文件讀寫許可權上受到限制,只能在幾個目錄下讀寫文件: Documents:應用中用戶數據可以放在這里,iTunes備份和恢復的時候會包括此目錄 tmp:存放臨時文件,iTunes不會備份和恢復此目錄,此目錄下文件可能會在應用退出後刪除 Library/Caches:存放緩存文件,iTunes不會備份此目錄,此目錄下文件不會在應用退出刪除 iTunes在與iPhone同步時,備份所有的Documents和Library文件。 iPhone在重啟時,會丟棄所有的tmp文件。 查看方法: 方法1、可以設置顯示隱藏文件,然後在Finder下直接打開。設置查看隱藏文件的方法如下:打開終端,輸入命名 (1)顯示Mac隱藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -bool true (2)隱藏Mac隱藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -bool false (3)輸完單擊Enter鍵,退出終端,重新啟動Finder就可以了 重啟Finder:滑鼠單擊窗口左上角的蘋果標志-->強制退出-->Finder--> 現在能看到資源庫文件夾了。 打開資源庫後找到/Application Support/iPhone Simulator/文件夾。這裡面就是模擬器的各個程序的沙盒目錄了。 方法2、這種方法更方便,在Finder上點->前往->前往文件夾,輸入/Users/username/Library/Application Support/iPhone Simulator/ 前往。 username這里寫用戶名。 代碼查看目錄: NSString *path = NSHomeDirectory();//主目錄 NSLog(@"NSHomeDirectory:%@",path); NSString *userName = NSUserName();//與上面相同 NSString *rootPath = NSHomeDirectoryForUser(userName); NSLog(@"NSHomeDirectoryForUser:%@",rootPath); NSArray *paths = (NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory=[paths objectAtIndex:0];//Documents目錄 NSLog(@"NSDocumentDirectory:%@",documentsDirectory); 結果如下: 2013-09-03 20:31:27.210 ios那啥[8383:c07] NSHomeDirectory:/Users/wmm/Library/Application Support/iPhone Simulator/6.1/Applications/D803DBD2-9CB2-4D18-9152-6E9398EFF5DB2013-09-03 20:31:27.210 ios那啥[8383:c07] NSHomeDirectoryForUser:/Users/wmm/Library/Application Support/iPhone Simulator/6.1/Applications/D803DBD2-9CB2-4D18-9152-6E9398EFF5DB2013-09-03 20:31:27.211 ios那啥[8383:c07] NSDocumentDirectory:/Users/wmm/Library/Application Support/iPhone Simulator/6.1/Applications/D803DBD2-9CB2-4D18-9152-6E9398EFF5DB/Documents 自定義類返回各目錄路徑: #import <Foundation/Foundation.h> @interface ICSandboxHelper : NSObject + (NSString *)homePath; // 程序主目錄,可見子目錄(3個):Documents、Library、tmp + (NSString *)appPath; // 程序目錄,不能存任何東西 + (NSString *)docPath; // 文檔目錄,需要ITUNES同步備份的數據存這里,可存放用戶數據 + (NSString *)libPrefPath; // 配置目錄,配置文件存這里 + (NSString *)libCachePath; // 緩存目錄,系統永遠不會刪除這里的文件,ITUNES會刪除 + (NSString *)tmpPath; // 臨時緩存目錄,APP退出後,系統可能會刪除這里的內容 + (BOOL)hasLive:(NSString *)path; //判斷目錄是否存在,不存在則創建 #import "ICSandboxHelper.h" @implementation ICSandboxHelper + (NSString *)homePath{ return NSHomeDirectory(); } + (NSString *)appPath { NSArray * paths = (NSApplicationDirectory, NSUserDomainMask, YES); return [paths objectAtIndex:0]; } + (NSString *)docPath { NSArray * paths = (NSDocumentDirectory, NSUserDomainMask, YES); return [paths objectAtIndex:0]; } + (NSString *)libPrefPath { NSArray * paths = (NSLibraryDirectory, NSUserDomainMask, YES); return [[paths objectAtIndex:0] stringByAppendingFormat:@"/Preference"]; } + (NSString *)libCachePath { NSArray * paths = (NSLibraryDirectory, NSUserDomainMask, YES); return [[paths objectAtIndex:0] stringByAppendingFormat:@"/Caches"]; } + (NSString *)tmpPath {return [NSHomeDirectory() stringByAppendingFormat:@"/tmp"]; } + (BOOL)hasLive:(NSString *)path { if ( NO == [[NSFileManager defaultManager] fileExistsAtPath:path] ) { return [[NSFileManager defaultManager] createDirectoryAtPath:path withIntermediateDirectories:YES attributes:nil error:NULL]; } return NO; }
② ios swift用作緩存的資料庫哪個更好
他們各有優點,不能說誰更好!安卓是開源的可定製的系統,所以安卓可以換各種不同風格的桌面,圖標等,進行DIY,而IOS做不到!安卓可以安裝任何渠道的應用,而IOS做不到(除非越獄)安卓可以更方便在電腦上傳輸文件,而IOS要復雜許多!安卓可以更方便的去操作系統,限制比較少,而IOS限制比較多!IOS由於系統較為封閉,應用統一性較強,開發規范上比較好,而安卓應用開發有點隨性或者說雜亂。IOS的系統由於比較封閉,安全性和穩定性更好點!
③ swift 開發 怎麼獲得應用所佔緩存
請參考下列 Swift 程序:
// 查詢當前任務基本信息
let MACH_TASK_BASIC_INFO_COUNT = (sizeof(mach_task_basic_info_data_t) / sizeof(natural_t))
// 准備參數
let name = mach_task_self_
let flavor = task_flavor_t(MACH_TASK_BASIC_INFO)
var size = mach_msg_type_number_t(MACH_TASK_BASIC_INFO_COUNT)
// 分配指針用於獲取任務信息
var infoPointer = UnsafeMutablePointer<mach_task_basic_info>.alloc(1)
// 調用查詢內存等狀況的任務說明
let kerr = task_info(name, flavor, UnsafeMutablePointer(infoPointer), &size)
// 獲得信息指針
let info = infoPointer.move()
// 釋放指針
infoPointer.dealloc(1)
// 檢查返回值是否成功
if kerr == KERN_SUCCESS {
println("內存佔用位元組數:\(info.resident_size)")
} else {
let errorString = String(CString: mach_error_string(kerr), encoding: NSASCIIStringEncoding)
println(errorString ?? "出現錯誤,查詢失敗")
}
④ swift 中三種創建UITableView的方法和之間的區別
UITableView其它一些東西在這里不多講,這里的就是講解UITableView的創建。
UITableView的創建有三種方法分別是純代碼、XIB、storyboard。下面就是創建的代碼
1.純代碼的創建
首先實例化UITableView(我所有的創建都是在UIViewController類中完成的)
lettableView =UITableView(frame:UIScreen.mainScreen().bounds, style:UITableViewStyle.Plain)
tableView.delegate=self
tableView.dataSource=self
self.view.addSubview(tableView)
必要的幾個代理方法
func numberOfSectionsInTableView(tableView:UITableView) ->Int{
return1
}
func tableView(tableView:UITableView, numberOfRowsInSection section:Int) ->Int{
return3
}
這一塊是自定義cell
func tableView(tableView:UITableView, cellForRowAtIndexPath indexPath:NSIndexPath) ->UITableViewCell{
letcell=TYCodeTableViewCell.codeTableViewCell(tableView)as!TYCodeTableViewCell
returncell
}
下面是具體用純代碼創建cell
class TYCodeTableViewCell:UITableViewCell{
class func codeTableViewCell(tableView :UITableView) ->AnyObject{
let ID ="cell"//設置標記
var cell = tableView.(ID)//從緩存中提取
if cell ==nil {//沒有就創建cell
cell =TYCodeTableViewCell(style:UITableViewCellStyle.Default, reuseIdentifier: ID)
//在這里創建cell中的其它控制項,是會出現亂序,你的邏輯最好不要在這里實現
}
return cell!//返回cell
}
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
override func setSelected(selected:Bool, animated:Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
}
以上就是純代碼的創建
XIB的創建
因為我們使用XIB所以它的創建與有點不一樣
lettableView =UITableView(frame:UIScreen.mainScreen().bounds, style:UITableViewStyle.Plain)
tableView.delegate=self
tableView.dataSource=self
self.view.addSubview(tableView)
//這里是注冊XIB類似純代碼中的創建cell
letnib =UINib(nibName:"TYXIBTableViewCell", bundle:nil)
tableView.registerNib(nib, forCellReuseIdentifier:id)
因為上面已經創建所以下面我只要到緩存中提取就可以了,這里也是自定義cell 為TYXIBTableViewCell
func tableView(tableView:UITableView, cellForRowAtIndexPath indexPath:NSIndexPath) ->UITableViewCell{
let cell :TYXIBTableViewCell= (tableView.(id, forIndexPath: indexPath)) as!TYXIBTableViewCell
returncell
}
使用storyboard創建就更加簡單了
在這里創建了TableView和cell代碼中只要從緩存中提取就可以了
func tableView(tableView:UITableView, cellForRowAtIndexPath indexPath:NSIndexPath) ->UITableViewCell{
letcell :TYStoryboardTableViewCell= tableView.("TYStoryboardTableViewCell", forIndexPath: indexPath) as! TYStoryboardTableViewCell
returncell
}
⑤ Taylor Swift 《Mine》空間可用鏈接不要緩沖慢的~謝啦
音悅台高清MV鏈接地址:
http://www.yinyuetai.com/video/player/71353/v.swf
,緩沖慢是因為網速慢,跟資源問題不大,這個挺快的。
⑥ swift 如何判斷點擊的是哪個tabbar
本月初蘋果公司在WWDC大會上發布了最新編程語言Swift,Swift語言的發布對於開發者們來說無疑是一項重大的變革。Swift語言的未來發展必將一片光明,想要學習Swift語言的程序猿們趕緊看過來吧!
這套Swift語言視頻教程是針對有Objective-C/iOS基礎,想轉成Swift開發的程序猿們而錄制的,視頻中從編程語言Swift的語法,結構體,面向對象,繼承,閉包到Swift作為iOS開發的UI,地圖,網路進行一系列講解。
視頻教程中包含了Swift語法:如何使用Swift進行UI導航控制器,TabBarController,代理設計模式,反向傳值,TableView,網路,AFNetworking,圖片緩存,Objective-C和Swift進行相互調用的詳細講解。
⑦ swift在tab bar controller顯示之前,顯示登陸頁面
例子如下:把一個TabBarController拖到mainwindow.xib里,有item1和item2解決方法如下:Library裡面拖一個TabBarItem進去
⑧ 求taylorswift的lovestory的空間鏈接
您好,很高興為你解答問題~
您需要的音樂(歌曲)鏈接(可用於空間背景音樂)~
【taylorswift的lovestory】
http://qqmusic.xbdj.cn/music/9/31004392.mp3
不要點擊鏈接,直接復制鏈接到空間去設置即可~
如果不能正常播放請下載使用先前清理緩存,重啟下瀏覽器,刷新下頁面~
如果我的回答對你有幫助~
請點擊【我回答下】的【選為滿意回答】按鈕!
回答者/發件人:我們d彼此,記得不要點錯(⊙o⊙)哦~
不要收到鏈接問題放著不處理,浪費網路資源,相互尊重請及時採納~
相互幫助,相互支持,O(∩_∩)O謝謝~
同求資源者請滑鼠放在我賬號上點擊→【求助知友】按鈕@我們d彼此 ,向我提問~
如果收到求助會第一時間幫大家解答(*^__^*) ~
★來自知道團隊【網路知道的】★
⑨ swift中struct類型怎麼緩存
從速度上來說,struct會好過於class。Swift的struct比Objective-C的struct要強大許多,比如:
自定義init():雖然Swift和Objective-C一樣提供默認的init (default memberwise initializer),但是你可以在Swift中定義自己的init(),如:
[objc] view plain
struct Student {
let studentId: String // studentId 和 name 必須賦值
var name: String
var birthday: NSDate? // optional
var gender = 0 // 給一個默認的值
// 自定義init()
init(sid:String) {
studentId = sid // self. 是可選的
// 但是你必須提供所有非optional,沒有默認值的stored property的初始值
name = "A Name" // 沒有此條會報錯
}
}
當你提供了自定義的init後,Swift就不提供默認的memberwise init了。如果你需要同時保留,可以把自定義的init寫在extension裡面:
[objc] view plain
extension Student {
init(sid: String) {
// ...
}
}
struct可以有方法,下面為Student添加一個描述方法
[objc] view plain
func summary() -> String {
return "\(name) is born on \(birthday)"
}
struct的方法如果需要改變ivar的值,那必須添加mutating關鍵詞
[objc] view plain
mutating func changeName(name:String) {
self.name = name // 沒有mutating的話,此條報錯
// 當然在這里改變 studentId 還是不可以的,因為它是let
}
struct也可以implement protocol,但是功能非常局限。大多數protocols還是class-only的。
使用struct可以優化代碼的性能,因為struct是value type,而不是reference type。也就是說struct只可以有一個owner,它的值也是被而不是以reference的方式傳輸的。因為不是reference,也沒有reference count的計算,所以性能會比class優化一些。