日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

iOS开发中 常用枚举和常用的一些运算符(易错总结)

發布時間:2025/3/8 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iOS开发中 常用枚举和常用的一些运算符(易错总结) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、色值的隨機值: #define kColorValue arc4random_uniform(256)/255.0 // arc4random_uniform(256)/255.0; 求出0.0~1.0之間的數字view.backgroundColor = [UIColor colorWithRed:kColorValue green: kColorValue blue: kColorValue alpha: 0.5];
2、定時器的使用: [NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(fromOutToInside) userInfo:nil repeats:YES];
3、退回鍵盤觸發方法 - (BOOL)textFieldShouldReturn:(UITextField *)textField;{[textField resignFirstResponder];return YES; }
4、點擊空白回收鍵盤 - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{for (int i = 0; i < 5; i ++ ) {[field resignFirstResponder]; }
5、UILabel切圓角,下面兩個同時才能顯示 ??? label.layer.cornerRadius = 10;//切圓角 ??? label.layer.masksToBounds = YES; 6、? UITextField文本框類型 (圓角) ??? textField.borderStyle = UITextBorderStyleRoundedRect; 7、定時器 [NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(printHelloword) userInfo:nil repeats:YES];
8、UITextField 文本框的叉號,X _field.clearButtonMode = UITextFieldViewModeAlways;

9、設置導航默認標題的顏色及字體大小 ? self.navigationController.navigationBar.titleTextAttributes = @{UITextAttributeTextColor: [UIColor whiteColor], UITextAttributeFont : [UIFont boldSystemFontOfSize:18]};

11、身份證號處理 - (NSString *)ittemDisposeIdcardNumber:(NSString *)idcardNumber {//星號字符串NSString *xinghaoStr = @"";//動態計算星號的個數for (int i = 0; i < idcardNumber.length - 7; i++) {xinghaoStr = [xinghaoStr stringByAppendingString:@"*"];}//身份證號取前3后四中間以星號拼接idcardNumber = [NSString stringWithFormat:@"%@%@%@",[idcardNumber substringToIndex:3],xinghaoStr,[idcardNumber substringFromIndex:idcardNumber.length-4]];//返回處理好的身份證號return idcardNumber; }
---------------------------------------------------------------------------------------------------------- 12、//調整字間距 ? CFNumberRef num = CFNumberCreate(kCFAllocatorDefault,kCFNumberSInt8Type,&number;);[attributedString addAttribute:(id)kCTKernAttributeName value:(__bridge id)num range:NSMakeRange(0, [attributedString length])];//調整行間距[attributedString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, [_messageLabel.text length])];_messageLabel.attributedText = attributedString;
---------------------------------------------------------------------- 13、ios8適配地圖授權問題 iOS8修改了位置設置里的內容,增加了一套狀態(使用中可用/通常可用),所以以前的CLLcationManage的注冊后,? Delegate接口不響應了。? ? iOS8需要這么設置? 第一步? location = [[CLLocationManager alloc] init]; location.delegate= self; [locationrequestAlwaysAuthorization];
第二步? 在Plist中追加下面兩個字段 (必須有,最少一個,內容是系統ALert的文言,文言可為空)? 第三步? 有了新的Delegate方法。? - (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status { switch (status) { casekCLAuthorizationStatusNotDetermined: if ([location respondsToSelector:@selector(requestAlwaysAuthorization)]) { [locationrequestAlwaysAuthorization]; } break; default: break; } }
---------------------------------------------------------------------- 14、一段文字設置多種字體顏色 //設置不同字體顏色 -(void)fuwenbenLabel:(UILabel *)labell FontNumber:(id)font AndRange:(NSRange)range AndColor:(UIColor *)vaColor {NSMutableAttributedString *str = [[NSMutableAttributedString alloc] initWithString:labell.text];//設置字號[str addAttribute:NSFontAttributeName value:font range:range];//設置文字顏色[str addAttribute:NSForegroundColorAttributeName value:vaColor range:range];labell.attributedText = str; }
---------------------------------------------------------------------- 15、由身份證號碼返回性別 -(NSString *)sexStrFromIdentityCard:(NSString *)numberStr{NSString *result = nil;BOOL isAllNumber = YES;if([numberStr length]<17)return result;//**截取第17為性別識別符NSString *fontNumer = [numberStr substringWithRange:NSMakeRange(16, 1)];//**檢測是否是數字;const char *str = [fontNumer UTF8String];const char *p = str;while (*p!='\0') {if(!(*p>='0'&&*p<='9'))isAllNumber = NO;p++;}if(!isAllNumber)return result;int sexNumber = [fontNumer integerValue];if(sexNumber%2==1)result = @"男";///result = @"M";else if (sexNumber%2==0)result = @"女";//result = @"F";return result; }
---------------------------------------------------------------------- 16、iphone開發之獲取系統字體 + (NSArray*)getAllSystemFonts; {NSMutableArray *array = [[[NSMutableArray alloc] init] autorelease];NSArray* familys = [UIFont familyNames];for (id obj in familys) {NSArray* fonts = [UIFont fontNamesForFamilyName:obj];for (id font in fonts) {[array addObject:font];}}return array; } + (UIFont*)getCurrentFont {//判斷系統字體的size,返回使用的字體。UIFont *font = [UIFont systemFontOfSize:[UIFont systemFontSize]];return font; }
---------------------------------------------------------------------- 17、輸入字體,內容。自動算范圍 內容:字符串,輸入字體大小,和需要多寬 CGSize size1 = [內容 sizeWithFont:[UIFont boldSystemFontOfSize:13] constrainedToSize:CGSizeMake(寬度, 10000)]; -(CGFloat)getHeight:(NSString *)text andWidth:(CGFloat)width andFont:(UIFont *)font {CGRect frame = [text boundingRectWithSize:CGSizeMake(width, CGFLOAT_MAX) options:NSStringDrawingUsesFontLeading|NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:font} context:nil] ;return frame.size.height ; }

18、#region 將Base64編碼的文本轉換成普通文本 /// <summary>/// 將Base64編碼的文本轉換成普通文本/// </summary>/// <param name="base64">Base64編碼的文本</param>/// <returns></returns>public static string Base64StringToString(string base64){if (base64 != ""){char[] charBuffer = base64.ToCharArray();byte[] bytes = Convert.FromBase64CharArray(charBuffer, 0, charBuffer.Length);string returnstr = Encoding.Default.GetString(bytes);return returnstr;}else{return "";}}#endregion#region 字符串轉為base64字符串public static string changebase64(string str){if (str != "" && str != null){byte[] b = Encoding.Default.GetBytes(str);string returnstr = Convert.ToBase64String(b);return returnstr;}else{return "";}}#endregion

19、獲取文件路徑 NSString *filePath = [[NSBundle mainBundle]pathForResource:@"Contacts.plist" ofType:nil];
?20、修改title的字體顏色 ??? NSDictionary *dic = @{NSForegroundColorAttributeName : [UIColor whiteColor]};self.navigationController.navigationBar.titleTextAttributes = dic;

21、添加頭像的方法 //調用添加手勢的方法 [self addTapGesture];
//給aImageView 視圖添加輕拍手勢
- (void)addTapGesture{UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(handleTap : )];[self.aview.aImageView addGestureRecognizer:tap];[tap release];}

//實現輕拍手勢的方法
- (void)handleTap : (UITapGestureRecognizer *)tap{ //添加ActionSheet控件 提示選項框UIActionSheet *actionSheet = [[UIActionSheet alloc]initWithTitle:nil delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:@"拍照" otherButtonTitles:@"從手機中選擇", nil];//在當前界面顯示actionSheet對象[actionSheet showInView:self.view];[actionSheet release]; }


- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex{switch (buttonIndex) {case 0://拍照NSLog(@"拍照");[self pickerPictureFromCamera];break;case 1://從相冊中讀取照片NSLog(@"從相冊中讀取照片");[self pickerPictureFormPhotoAlbum];break;default:break;}}

//拍照
- (void)pickerPictureFromCamera{//判斷前攝像頭是否可以使用 BOOL isCameera = [UIImagePickerController isCameraDeviceAvailable:UIImagePickerControllerCameraDeviceFront]; // UIImagePickerControllerCameraDeviceFront 前攝像頭 // UIImagePickerControllerCameraDeviceRear //后攝像頭if (!isCameera) {NSLog(@"沒有攝像頭可以使用");return;}//初始化圖片選擇控制器對象UIImagePickerController *imagePicker = [[UIImagePickerController alloc]init];//設置圖片選擇器選取圖片的樣式imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;//設置取出來的圖片是否允許編輯imagePicker.allowsEditing = YES;//設置代理imagePicker.delegate = self;//把手機相機推出來[self presentViewController:imagePicker animated:YES completion:nil];[imagePicker release];}

//從相冊中取出相片
- (void)pickerPictureFormPhotoAlbum{UIImagePickerController *imagePicker = [[UIImagePickerController alloc]init];//設置圖片格式imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;//設置允許編輯imagePicker.allowsEditing = YES;//設置代理imagePicker.delegate = self;[self presentViewController:imagePicker animated:YES completion:nil];[imagePicker release];}

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{//從字典中取出編輯的key值,對應的照片self.aview.aImageView.image = [info objectForKey:UIImagePickerControllerEditedImage];//自己推出來的自己收回去[self dismissViewControllerAnimated:YES completion:nil]; }
================================================================================ 22.NSUserDefaults適合存儲輕量級的本地數據,比如要保存一個登陸界面的數據,用戶名、密碼之類的,個人覺得使用NSUserDefaults是首選。下次再登陸的時候就可以直接從NSUserDefaults里面讀取上次登陸的信息咯。
因為如果使用自己建立的plist文件什么的,還得自己顯示創建文件,讀取文件,很麻煩,而是用NSUserDefaults則不用管這些東西,就像讀字符串一樣,直接讀取就可以了。
NSUserDefaults支持的數據格式有:NSNumber(Integer、Float、Double),NSString,NSDate,NSArray,NSDictionary,BOOL類型 23.封裝一個解析的方法: //封裝一個解析的方法 - (void)parserData : (NSData *)data{//解析:NSMutableDictionary *dataDic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];// NSLog(@"%@",dataDic); 驗證!//取出results key值對應的數組NSArray *array = dataDic[@"results"];//遍歷數組的字典,并使用給Business對象賦值for (NSDictionary *dic in array) {//創建數據模型對象Business *bus = [[Business alloc]init];//使用kvc給bus賦值[bus setValuesForKeysWithDictionary:dic];//添加到存儲所有商戶信息的數組[self.dataSource addObject:bus];//釋放[bus release];// NSLog(@"%@",self.dataSource); 驗證! }//刷新ui界面[self.tableView reloadData]; }


24、 '-[Person encodeWithCoder:]: unrecognized selector sent to instance 0x7fc831d9c880? ?方法沒實現 25、計算字符串的大小: + (CGSize)getStringSize:(NSString *)text strMaxWidth:(CGFloat )width fontSize:(UIFont *)fontSize{CGSize constraint = CGSizeMake(width, MAXFLOAT);NSDictionary *dict = [NSDictionary dictionaryWithObject:fontSize forKey: NSFontAttributeName];CGSize size = CGSizeZero;if (isAboveIOS7) {size = [text boundingRectWithSize:constraintoptions:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeadingattributes:dictcontext:nil].size;return size;}size = [text sizeWithFont:fontSizeconstrainedToSize:constraintlineBreakMode:NSLineBreakByWordWrapping];return size; }
26、storyboard傳值: - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {//獲取segue起始端的視圖控制器對象RootViewController *rootVC = [segue sourceViewController];//通過segue完成跳轉的時候會觸發這個方法,在跳轉之前觸發,一般用來傳值//獲取push過去后的視圖控制器對象DetailViewController *detailVC = [segue destinationViewController];//把textField中的內容取出來賦值給下一個界面的屬性detailVC.string = rootVC.textField.text;// rootVC.textField.text 相當于 self.textField.text }

27.賦值方法中基本數據類型轉字符串 ? self.ageLabel.text = [NSString stringWithFormat:@"%ld",person.age];
28.UIViewController中關于nib初始化的函數

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil; 從這個函數的說明我們可以知道,如果你subclass一個UIViewController,不管有沒有使用NIB, [super?initWithNibName:bundle]這個方法必須被調用, 這個方法會在如下兩種情況下被調用:

  • 顯示調用, 指定一個nib名稱,系統會去找指定的nib
  • 在父類的Init方法中被調用,如果這種情況,兩個參數都會是nil,系統會去找和你自定以的UIViewController相同名字的nib
如果系統找到nib文件,就會把nib文件中的內容加載進來,有一點需要解釋,initWithNibName:bundle方法并不會加載nib, 當UIViewController的view屬性第一次被使用的時候,系統就會調用UIViewController中的loadView方法,在這個方法中會加載nib文件。 如果不用nib,我們可以在loadview中創建view的層次結構,對于有nib的情況,我們也可以在這個方法中做想要的修改。

NSBundle Nib裝載方法

Resource programming guide?文檔詳細介紹了nib的裝載過程,例如可以用loadNibNamed:owner方法,但是這個方法只是做了loadNib的事情。
29、解決webView的漢字顯示問題 NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://linode-back-cn.b0.upaiyun.com/articles/d34/372/db6edd24d68302930fbc5fd44c.html"]]];[self.webView loadData:data MIMEType:@"text/html" textEncodingName:@"UTF-8" baseURL:nil];

30.IOS?登陸注銷功能的實現
1、在appDelegate中加入一個navigation用來控制所有的頁面跳轉
2、將login頁面作為navigation的root view 3、在appDelegate中判斷程序是否是第一次登陸,如果是直接進入login頁面,如果不是則跳過login頁面,push下一個頁面(程序主頁面,且采用的是tab+nav的結構) 4、程序主頁面中對應的每個tab頁面都是一個nav的結構 5、當點擊注銷按鈕時,利用appDelegate中的導航將主頁面pop出來,此時程序便又重新回到了login頁面。
31.Label自適應高度

UILabel *descLable=[[UILabel alloc] init];[descLable setNumberOfLines:0];descLable.lineBreakMode = UILineBreakModeCharacterWrap;descLable.text = _newsListModel.news_comtent;descLable.font = [UIFont systemFontOfSize:12];UIFont *font = [UIFont fontWithName:@"Arial" size:12];CGSize size = CGSizeMake(300, MAXFLOAT);CGSize labelsize = [_newsListModel.news_comtent sizeWithFont:font constrainedToSize:size lineBreakMode:UILineBreakModeCharacterWrap];[descLable setFrame:CGRectMake(10, 280,300, labelsize.height)];[headView addSubview:descLable];view.backgourd.color = [uicolor colorwithred green blue alpha:0.5]
———————————————————————————————————————————————————————————————————————— 32、SDWebImage手動清除緩存的方法
1.找到SDImageCache類

2.添加如下方法:

[objc]?view plaincopy
  • -?(float)checkTmpSize??
  • {??
  • ????float?totalSize?=?0;??
  • ????NSDirectoryEnumerator?*fileEnumerator?=?[[NSFileManager?defaultManager]?enumeratorAtPath:diskCachePath];??
  • ????for?(NSString?*fileName?in?fileEnumerator)??
  • ????{??
  • ????????NSString?*filePath?=?[diskCachePath?stringByAppendingPathComponent:fileName];??
  • ??
  • ????????NSDictionary?*attrs?=?[[NSFileManager?defaultManager]?attributesOfItemAtPath:filePath?error:nil];??
  • ??
  • ????????unsigned?long?long?length?=?[attrs?fileSize];??
  • ??
  • ????????totalSize?+=?length?/?1024.0?/?1024.0;??
  • ????}??
  • //????NSLog(@"tmp?size?is?%.2f",totalSize);??
  • ??
  • ????return?totalSize;??
  • }??

  • 新版的SDImageCache類,已增加此方法

    [objc]?view plaincopy
  • [[SDImageCache?sharedImageCache]?getSize];??
  • 3.在設置里這樣使用

    [objc]?view plaincopy
  • #pragma?清理緩存圖片??
  • ??
  • -?(void)clearTmpPics??
  • {??
  • ????[[SDImageCache?sharedImageCache]?clearDisk];??
  • ??
  • //????[[SDImageCache?sharedImageCache]?clearMemory];//可有可無??
  • ??
  • ????DLog(@"clear?disk");??????
  • ??
  • ????float?tmpSize?=?[[SDImageCache?sharedImageCache]?checkTmpSize];??
  • ??
  • ????NSString?*clearCacheName?=?tmpSize?>=?1???[NSString?stringWithFormat:@"清理緩存(%.2fM)",tmpSize]?:?[NSString?stringWithFormat:@"清理緩存(%.2fK)",tmpSize?*?1024];??
  • ??
  • ????[configDataArray?replaceObjectAtIndex:2?withObject:clearCacheName];??
  • ??
  • ????[configTableView?reloadData];??
  • }??

  • 32、第三方MJ使用方法 1、只需修改環境中的footer和base ? -fobjc-arc
    2、選中項目?-?Project?-?Build?Settings?-?ENABLE_STRICT_OBJC_MSGSEND? 將其設置為?NO?即可

    常用和易錯的記錄會持續更新..............敬請關注!


    總結

    以上是生活随笔為你收集整理的iOS开发中 常用枚举和常用的一些运算符(易错总结)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。