Foundation框架

1.框架是由許多類、方法、函數、文檔按照一定的邏輯組織起來的集合,以便使研發程序變的更容易

清除緩存,刪除這個文件夾下的所有文件/Users/fanyafang/Library/Developer/Xcode/DerivedData

顯示隱藏文件:defaults write com.apple.finder AppleShowAllFiles -bool true

隱藏隱藏文件:defaults write com.apple.finder AppleShowAllFiles -bool false

2.NSURL與NSString

url統一資源定位符

        //1.將字符串寫入文件NSString *str11=@"ssad";NSError *err;[str11 writeToFile:@"/Users/fanyafang/Desktop/str.txt" atomically:YES encoding:NSUTF8StringEncoding error:&err];if(err!=nil){NSLog(@"寫入失敗!%@",err);}else{NSLog(@"寫入成功!");}//2.讀取文件到字符串NSString *str22=[NSString stringWithContentsOfFile:@"/Users/fanyafang/Desktop/str.txt" encoding:NSUTF8StringEncoding error:&err];if(err!=nil){NSLog(@"讀取失敗!%@",err);}else{NSLog(@"讀取成功!");NSLog(@"%@",str22);}//3.寫入url,本地路徑加file://
        NSURL *url=[NSURL URLWithString:@"file:///Users/fanyafang/Desktop/str1.txt"];if([str11 writeToURL:url atomically:YES encoding:NSUTF8StringEncoding error:&err]){NSLog(@"寫入成功url");}//4.讀取urlNSString *str33=[NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];NSLog(@"%@",str33);

3.NSString

compare:字符串比較

位枚舉,枚舉值是2的次方,不使用的時候賦0

[str1 compare:str2 options:(NSCaseInsensitiveSearch,NSNumericSearch)];

     NSString *str1=@"abcd";NSString *str2=@"abc";NSComparisonResult s=[str1 compare:str2 options:(NSCaseInsensitiveSearch,NSNumericSearch)];switch (s) {case NSOrderedAscending:NSLog(@"升序!");break;case NSOrderedSame:NSLog(@"一樣!");break;case NSOrderedDescending:NSLog(@"降序!");break;default:break;}

isEqualToString:字符串比較

    if ([str1 isEqualToString:str2]) {NSLog(@"相等");}else{NSLog(@"不相等");}

hasPrefix:是否包含前綴

hasSuffix:是否包含后綴

 [str1 hasPrefix:@"sss"];//返回BOOL[str1 hasSuffix:@".jpg"];//返回BOOL

rangeOfString:字符串1中是否包含字符串2,返回結構體類型

NSMarkRange()可以給NSRange類型的結構體變量賦值

NSStringFromRange()把range轉換正NSString

        NSRange range=[str1 rangeOfString:str2];if(range.location!=NSNotFound){//沒有找到}else{//找到了//range.location首次出現的位置//range.length長度}

substringFromIndex:從什么位置開始截取字符串

substringToIndex:從開始位置到什么位置截取

substringWithRange:截取一個范圍

        NSString *str3=@"ssadsadsadsaqqee";NSLog(@"%@",[str3 substringFromIndex:3]);//從什么位置開始到結束NSLog(@"%@",[str3 substringToIndex:3]);//從開始到什么位置結束
        NSRange r1={3,4};NSLog(@"%@",[str3 substringWithRange:r1]);//截取一個范圍

stringByReplacingOccurrencesOfString:替換

NSString * str4=[str3 stringByReplacingOccurrencesOfString:@"a" withString:@"#"];
NSLog(@"%@",str4);

length獲取字符串的長度

characterAtIndex獲取某個位置的字符

        NSUInteger u=str3.length;NSLog(@"%u",u);unichar ch= [str3 characterAtIndex:3];NSLog(@"%c",ch);    

intValue:字符串轉int

floatValue:字符串轉float

doubleValue:字符串轉double

        NSString *str5=@"3";NSLog(@"%d",[str5 intValue]);NSLog(@"%f",[str5 floatValue]);NSLog(@"%f",[str5 doubleValue]);

stringWithUTF8String用C的字符串創建OC的字符串

UTF8String:OC字符串轉成C的字符串

       char *str6="aasdaf";//用C語言的對象創建OC的字符串NSString *str7= [NSString stringWithUTF8String:str6];char *str8=[str7 UTF8String];printf("%s",str8);    

2.NSMutableString

        NSMutableString *strring=[NSMutableString stringWithFormat:@"Jack"];//NSMutableString *strring=[NSMutableString string];
        [strring appendFormat:@"itcast"];//追加NSLog(@"%@",strring);    

NSMutableString和NSString的區別:

1)NSString是不可變的,里面的文字內容是不能進行修改的

2)NSMutanleString是可變的,里面的文字內容可以隨便更改

3)NSMubleString繼承自NSStirng,能使用NSString的所有方法

NSMutableString常用方法

stringWithFormat:格式化添加字符串

deleteCharactersInRange:刪除字符串的一部分

insertString:在指定位置插入字符串

replaceCharactersInRange:替換字符串的一部分

NSMubleString的string屬性可以把字符串覆蓋

給可變字符串賦值為不可變字符串,報錯

        NSMutableString *strring=[NSMutableString stringWithFormat:@"Jack"];//NSMutableString *strring=[NSMutableString string];
        [strring appendFormat:@"itcast"];[strring appendString:@"ssss"];NSLog(@"%@",strring);NSRange range1={2,3};[strring deleteCharactersInRange:range1];[strring insertString:@"fanyf" atIndex:8];NSLog(@"%@",strring);[strring replaceCharactersInRange:range1 withString:@"rrr"];NSLog(@"%@",strring);    

?3.NSArray只能存放任意OC對象,并且是有序的

數組元素不能存nil,改成[NSNull null],最后一個nil表示賦值結束,

        //創建一個空數組NSArray *arr=[NSArray array];NSLog(@"%@",arr);//創建數組,只有一個元素NSArray *arr2=[NSArray arrayWithObject:@"acc"];NSLog(@"%@",arr2);//創建數組,有多個元素NSArray *arr3=[NSArray arrayWithObjects:@"one",@"two",@"three",nil];NSLog(@"%@",arr3);//調用對象方法,創建數組NSArray *arr4=[[NSArray alloc] initWithObjects:@"one",@"two",@"three",nil];NSLog(@"%@",arr4);//用一個數組可以創建另外的一個數組NSArray *arr5=[NSArray arrayWithArray:arr3];NSLog(@"%@",arr5); 

count獲取數組長度

ObjectAtIndex:獲取某個位置的元素

indexofObject:返回某個元素的下標

laseObject:

firstObject:

containObject:是否包含這個元素返回BOOL

        NSLog(@"%ld",arr3.count);//得到數組長度NSLog(@"%@",[arr5 objectAtIndex:1]);//得到位置是1的元素的值NSUInteger loc= [arr5 indexOfObject:@"two"];//元素的位置NSLog(@"%ld",loc);BOOL isContain=[arr5 containsObject:@"one"];//數組是否包含NSLog(@"%@",isContain);NSArray *arr11=@[@"111",@"2",@11];//數組的簡化寫法NSLog(@"%@",arr11[0]);//數組的簡化訪問    

數組的遍歷(一般方法和快速枚舉法):

        //數組的遍歷1for (NSString *str in arr11) {NSLog(@"數組遍歷:%@",str);}//數組的遍歷2,用block遍歷[arr5 enumerateObjectsUsingBlock:^(id  obj, NSUInteger idx, BOOL *stop) {//if(idx==2){//   *stop=YES;//}else{NSLog(@"idx=%ld,obj=%@",idx,obj);//}
            }];    

讀寫文件,xml格式或者plist格式

        BOOL isWrite= [arr11 writeToFile:@"/Users/fanyafang/Desktop/arr.txt" atomically:YES];if(isWrite){NSLog(@"寫入成功!");}NSArray *readArr= [NSArray arrayWithContentsOfFile:@"/Users/fanyafang/Desktop/arr.txt"];NSLog(@"readArr=%@",readArr);

數組中的字符串用"-"連接起來

字符串分割成一個數組

        //數組連接NSString *str=[arr5 componentsJoinedByString:@"-"];NSLog(@"%@",str);//字符串分隔str=@"400-800-12580";NSArray *arr6=[str componentsSeparatedByString:@"-"];NSLog(@"%@",arr6);    

4.NSMutableArray

        NSMutableArray *marr=[NSMutableArray arrayWithObject:@"12"];NSMutableArray *marr2=[NSMutableArray arrayWithObjects:@"1",@"2",@"3",nil];NSMutableArray *marr3=[NSMutableArray arrayWithCapacity:5];//添加元素[marr2 addObject:@"fengjie"];NSLog(@"%@",marr2);[marr2 insertObject:@"sdd" atIndex:2];//刪除元素NSLog(@"%@",marr2);[marr2 removeObject:@"sdd"];NSLog(@"%@",marr2);[marr2 removeObjectAtIndex:2];NSLog(@"%@",marr2);//刪除元素[marr2 replaceObjectAtIndex:1 withObject:@"111"];NSLog(@"%@",marr2);//是否包含元素NSLog(@"%@",[marr2 containsObject:@"111"]);//交換元素[marr2 exchangeObjectAtIndex:0 withObjectAtIndex:2];NSLog(@"%@",marr2);

5.NSDictionary

enumerateKeysAndObjectsUsingBlock用代碼塊遍歷

簡寫形式:

6.NSMutableDictionary

?7.NSFileManager

//NSFileManager用于判斷NSString *path=@"/Users/fanyafang/Desktop/str.txt";NSString *path2=@"/Users/fanyafang/Desktop";NSFileManager *fm=[NSFileManager defaultManager];//1)判斷文件是否存在BOOL isyes=[fm fileExistsAtPath:path];//2)判斷是否是目錄if(isyes){BOOL isDir;[fm fileExistsAtPath:path2 isDirectory:&isDir];if(isDir){NSLog(@"是一個目錄");}}isyes=[fm isReadableFileAtPath:path];//3)是否可讀isyes=[fm isWritableFileAtPath:path];//4)是否可寫isyes=[fm isDeletableFileAtPath:path];//5)是否可刪除//1)獲取文件信息NSDictionary *dict=[fm attributesOfItemAtPath:path error:nil];NSLog(@"%@",dict);NSLog(@"%@",[dict objectForKey:@"NSFileCreationDate"]);//2)獲取指定目錄下的文件及子目錄NSArray * arr=[fm subpathsAtPath:path2];//遞歸方式arr=[fm subpathsOfDirectoryAtPath:path2 error:nil];//不使用遞歸方式//3)獲取知道目錄下得子目錄(不獲取后代路徑)arr=[fm contentsOfDirectoryAtPath:path2 error:nil];NSLog(@"%@",arr);//1)創建路徑NSString *dirPath=@"/Users/fanyafang/Desktop/aaa";BOOL isYes=[fm createDirectoryAtPath:dirPath withIntermediateDirectories:YES attributes:nil error:nil];//2)創建文件NSString *str=@"每當我錯過一個女孩。。。。";NSData *data=[str dataUsingEncoding:NSUTF8StringEncoding];isyes=[fm createFileAtPath:path contents:data attributes:nil];//3)復制NSString *targetPath=@"/Users/fanyafang/Desktop/aaa/str.txt";[fm copyItemAtPath:path toPath:targetPath error:nil];//4)移動文件NSString *targetPath2=@"/Users/fanyafang/Desktop/aaa/bbb/str.txt";[fm moveItemAtPath:path toPath:targetPath2 error:nil];//5)刪除文件[fm removeItemAtPath:targetPath error:nil];

8.ios沙盒(sandbox)機制及獲取沙盒路徑

文件系統

1)獲取沙盒跟目錄

NSHomeDirectory();

2)獲取doucuments目錄

NSSearchPathForDirectoriesInDomains();

9.常見結構體

 //CGPoint和NSPoint
        CGPoint p;p.x=1;p.y=3;CGPoint pp={1,3};NSPoint p1;p1.x=2;p1.y=3;NSPoint p2={2,3};CGPoint p3=CGPointMake(1, 3);NSPoint p4=NSMakePoint(2, 2);//CGSize和NSSizeCGSize s1={23,43};CGSize s2;s2.width=12;s2.height=14;NSSize s3={23,43};NSSize s4;s4.width=23;s4.height=33;CGSize s5=CGSizeMake(2, 3);NSSize s6=NSMakeSize(34, 45);//CGRect和NSRectCGRect rr={{1,2},{33,44}};CGRect r1=CGRectMake(1, 3, 4, 6);NSRect r2=NSMakeRect(3, 2, 44, 66);NSLog(@"%@",NSStringFromRect(r2));

10.NSNumber

NSNumber *n=[NSNumber numberWithInt:10];NSNumber *n2=[NSNumber numberWithFloat:10.1f];NSNumber *n3=[NSNumber numberWithDouble:12.1];NSArray *arr=[NSArray arrayWithObjects:n,n2,n3, nil];NSLog(@"%@",arr);int a=[n intValue];NSLog(@"%d",a);float f=[arr[1] floatValue];//簡寫@18 @(變量名)

11.集合對象的內存管理

1)只要把對象放到數組中,對象的引用計數+1

2)數組在銷毀的適合,對對象發送一次release消息

12.copy

類必須遵守NSCopying協議,才能使用copy方法復制對象

使用copy產生的是不可變的副本,是淺復制,因為沒有產生新的對象

使用mutableCopy產生的是可變的副本,是深復制,分配一塊新的內存空間

?@property中的copy關鍵字

適用于NSString/Block

13.為自定義類實現copy方法

遵守NSCopying協議

實現默認的方法,返回新對象

自定義對象都是深拷貝

14.單例模式

?

轉載于:https://www.cnblogs.com/fanglove/p/4946336.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/258084.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/258084.shtml
英文地址,請注明出處:http://en.pswp.cn/news/258084.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ubuntu上搭建php,ubuntu10.04上搭建php網站運行環境

ubuntu 10.04下搭建php網站運行環境ubuntu 10.04下搭建php網站運行環境前提:要打開root權限sudo password [這里填寫root密碼]1、第一步安裝ubuntu10.042、更新源sudo apt-get update3、安裝lighttpdsudo apt-get install lighttpd安裝好之后檢查lighttpd是否成功啟…

Windows 10 Threshold 2 升級記錄

昨天(11月17日)升級到Windows 10 Threshold 2版本。我的使用的設備是Surface Pro 3,4G內存,128G硬盤。 Threshold 2是作為一個Windows系統更新推送的。如果沒有收到系統更新提示,在系統設置里面手動檢查一下更新就可以…

轉換php script類型,javascript如何實現值的類型轉換

本篇文章給大家介紹使用javascript進行值的類型轉換的方法,有一定的參考價值,有需要的朋友可以參考一下,希望對你們有所幫助。JavaScript是松散類型的語言,大多數情況下,運算符和函數會自動將值轉換為正確的類型(隱式轉…

iOS屏幕適配方案-Auto Layout

市場上的android手機五花八門。各種尺寸的屏幕讓android程序員們比較頭疼。也有一些大神寫了一些博客提出了自己的觀點。iOS貌似也迎來了大屏6+,因此屏幕適配的問題也是有滴,因此蘋果也有自己的方法-auto Layout 。本人初學iOS。今…

Exercise 12: Prompting People

age raw_input("How old are you? ") height raw_input("How tall are you? ") weight raw_input("How much do you weigh? ") print "So, youre %r old, %r tall and %r heavy." % ( age, height, weight) 轉載于:https://www.…

一年一循環

一年了,沒怎么關注博客園,回來看看。 希望自己今后多學多記錄多分享。轉載于:https://www.cnblogs.com/Chinarain/p/4974904.html

JAVA三角海倫公式,海倫公式求三角形面積出錯求教

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓就下面這個程序 輸入其他的數字都可以算出面積 但是當輸入3,4,6時 計算出面積為零 求吧友指出錯誤在哪package javaapplication17;import java.util.Scanner;public class JavaApplication17 {public static void main(String[] ar…

虛擬機里面安裝Openfiler 2.99

2019獨角獸企業重金招聘Python工程師標準>>> 簡介 Openfiler 由rPath Linux驅動,它是一個基于瀏覽器的免費網絡存儲管理實用程序,可以在單一框架中提供基于文件的網絡連接存儲 (NAS) 和基于塊的存儲區域網 (SAN)。Openfiler 支持 CIFS、NFS、…

win10如何搭建php,Win10系統怎么搭建php環境 win10搭建PHP環境方法

Win10系統怎么搭建php環境?win10搭建PHP環境方法。在今天的Win10系統使用教程中,我們將給大家分享的是在Win10系統下搭建Apache和PHP的開發環境的方法。可能有網友會問:Win10系統搭載Apache和PHP的開發環境的方法是不是與Win7/Win8.1的差不多…

關于jmf不能播放mp3的問題解決

想寫個JAVA的MP3音樂管理器,使用JMF插件,但發現運行時總報一個異常:Unable to handle format: mpeglayer3, 44100.0 Hz, 16-bit, Stereo, LittleEndian, Signed, 16000.0 frame rate, FrameSize32768 bitsFailed to realize: com.sun.media.P…

LINK:fatal error LNK1123: 轉換到 COFF 期間失敗: 文件無效或損壞

原文地址:http://yacare.iteye.com/blog/2010049 很多伙伴在更新VS2010,或者卸載VS2012安裝2010后,建立Win32 Console Project/MFC項目時會出現"LINK : fatal error LNK1123: 轉換到 COFF 期間失敗: 文件無效或損壞"的錯誤。 錯誤描…

網站出現403 Forbidden

1, 你在一定時間內過多地訪問此網站(一般是用采集程序),被防火墻拒絕訪問了 2, 網站域名解析到了空間,但空間未綁定此域名 3, 你的網頁腳本文件在當前目錄下沒有執行權限 4, 服務器繁…

matlab離散信號卷積和,信號與系統實驗(MATLAB版)實驗7離散信號的卷積和.ppt

一、實驗目的   1 熟悉離散時間信號卷積的定義、表示以及卷積的結果;    2 掌握利用計算機進行離散時間信號卷積運算的原理和方法;    3 熟悉離散時間信號的相關計算方法;    4 熟悉離散時間信號卷積運算函數conv和deconv的應用。   2. 卷積計算的幾何解法…

學Linux從編譯命令開始——arm-linux-gcc常用參數講解

1.想要編譯出ARM平臺上的代碼,需要四個步驟,預處理,編譯,匯編,鏈接。 arm-linux-gcc有諸多選項 arm-linux-gcc -o main main.c  不加-c、-S、-E等參數,則同時進行四個步驟,生成可執行文件。 其…

【轉】如何在編程生涯中有一個好的開端

本文來自:http://www.techug.com/how-get-jump-start-your 作者:http://www.techug.com/author/admin(中文,譯作者) 作者:http://java.dzone.com/users/simpleprogrammer(英文,原作者…

git的使用1[轉]

在應用程序開發過程中,很重要的一部分工作就是如何進行源碼的版本控制。當代碼出現問題時,我們就需要將代碼恢復到原先正常的版本。如果是多個人共同開發一個項目,那么代碼的控制就會非常復雜。幸運的是,開發者不需要自己控制這些…

matlab做比例積分微分控制,收放卷卷徑計算+閉環擺桿控制參數自適應PID控制算法(變比例變積分變微分)介紹...

項目簡介最近在一個客戶現場搞熔邊機項目,涉及到收放卷工藝的卷徑計算,同時張力控制使用的是擺桿,然后通過PID控制輸出輔助轉速補償收卷伺服速度。單一的PID參數不能自動適應卷徑變化,如在小卷徑200mm下調試整定出的一組PID參數,當…

如何檢測支付寶接口中notify_url.php有沒有返回,支付寶中的手機網站支付接口,php版 notify_url.php 異步通知頁面未成功執行...

require_once("alipay.config.php");require_once("lib/alipay_notify.class.php");$alipayNotify new AlipayNotify($alipay_config);$verify_result $alipayNotify->verifyNotify();if($verify_result) {//驗證成功$notify_data $alipayNotify->…

openfire學習4---android客戶端聊天開發之聊天功能開發

前面我們已經把服務器搭建完成,并且在客戶端實現了登錄了。 和我們使用的QQ一樣,想一想,登錄成功之后呢?肯定是要有一個好友列表,通過這個列表,我們可以選擇我們需要聊天的好友。 這里我們先研究下 xmpp的數…