介於群里大部分童鞋都是新手,為了大家能夠更好的提問,並且提的問題能更好的得到回答,下面寫幾點提問時的注意事項:
1、認真對待你的問題,在提問題前有過認真的思考;
2、先在 google 搜索,一般的問題都可以找到答案,在天朝google經常會抽抽,這個時候需要大家學會怎么去翻牆;
3、問題具體化,讓你的問題處於具體的環境中,把問題闡述清楚,避免大而空洞、需要具體情況來分析、或別人難以讀懂的問題;
4、話不在多,盡量提供精確的信息,把信息裁剪的越小越好。這樣做有幾點好處:首先表明你對你的提問付出了努力,可以增加回答的機會;其次,問題簡化后可以使有用答案出現的幾率增加;再次,在你提煉問題的時候,也許你自己就能找出問題的所在,然后做出修改;
5、明白你想問的是什么,能給你有用答案的人也正是最忙的人;
6、別用無意義的話語結束提問,例如:“有人能幫我嗎?”、“有人在嗎?”或者“有答案嗎?”之類的話。這樣問就是畫蛇添足,別人會很厭煩你;
7、盡量別出現錯別字,不然看不懂。
希望以上幾點能夠幫到大家。
下面是此次的問題集錦。
1、怎么分解url字符串,只要問號前邊的字符?或各個參數?如下字符串:
NSString *url = @"http://hzd.exi.hotchaleur.com/mp3_64_60/06/fc/06d7480aadbbcbb8bb7cee6f136c05fc.mp3?k=f2a52712bc03c5c3&t=1376447585";
a、以 "?" 來分割為字符串數組,然后取索引為 0 的字符
[url componentsSeparatedByString:@"?"][0]
b、把這個字符轉換為 NSURL類型,然后拼接字符串
NSURL *query = [NSURL URLWithString:url]; NSLog(@"url -> http://%@%@", query.host, query.path);
c、寫個獨立的方法,用字典的方式顯示url字符串中的各個參數,此方法只針對正確地url(錯誤的url請忽略...)
/** 解析查詢字符串 query : 查詢字符串,以 ‘&’ 分隔 */ + (NSDictionary *)parseQueryString:(NSString *)query { // 定義字典 NSMutableDictionary *dict = [[NSMutableDictionary alloc] init]; // 檢測字符串中是否包含 ‘?’ NSRange range = [query rangeOfString:@"?"]; if(range.location != NSNotFound){ NSArray *queryArr = [query componentsSeparatedByString:@"?"]; [dict setObject:queryArr[0] forKey:@"url"]; query = queryArr[1]; }else{ // 如果一個url連 '?' 都沒有,那么肯定就沒有參數 [dict setObject:query forKey:@"url"]; return dict; } // 檢測字符串中是否包含 ‘&’ if([query rangeOfString:@"&"].location != NSNotFound){ // 以 & 來分割字符,並放入數組中 NSArray *pairs = [query componentsSeparatedByString:@"&"]; // 遍歷字符數組 for (NSString *pair in pairs) { // 以等號來分割字符 NSArray *elements = [pair componentsSeparatedByString:@"="]; NSString *key = [[elements objectAtIndex:0] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; NSString *val = [[elements objectAtIndex:1] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; // 添加到字典中 [dict setObject:val forKey:key]; } }else if([query rangeOfString:@"="].location != NSNotFound){ // 檢測字符串中是否包含 ‘=’ NSArray *elements = [query componentsSeparatedByString:@"="]; NSString *key = [[elements objectAtIndex:0] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; NSString *val = [[elements objectAtIndex:1] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; // 添加到字典中 [dict setObject:val forKey:key]; } NSLog(@"dict -> %@", dict); return dict; }
2、設置App啟動頁,如下圖:
啟動頁圖片分為3中像素:320*480、640*960、640*1136。
首先拖動圖片到上圖3中相應的位置,然后在工程的AppDelegate.m中的下列方法中設置:
/* 說明:當程序載入后執行 **/ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { //延時3秒,以便用戶看清楚啟動頁 [NSThread sleepForTimeInterval:3.0]; // 添加啟動頁 UIImageView *splashScreen = [[UIImageView alloc] initWithFrame:self.window.bounds]; if (iPhone5) { splashScreen.image = [UIImage imageNamed:@"Default-568h"]; }else{ splashScreen.image = [UIImage imageNamed:@"Default"]; } [self.window addSubview:splashScreen]; // 啟動頁漸變效果 [UIView animateWithDuration:0.5 animations:^{ CATransform3D transform = CATransform3DMakeScale(1.0, 1.0, 1.0); splashScreen.layer.transform = transform; splashScreen.alpha = 0.0; } completion:^(BOOL finished) { [splashScreen removeFromSuperview]; }]; [self.window makeKeyAndVisible]; return YES; }
上述代碼片段中,iPhone5是一個宏定義,如下:
#define iPhone5 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 1136), [[UIScreen mainScreen] currentMode].size) : NO)
3、點擊背景視圖,收起輸入法。
在 - (void)viewDidLoad 中添加如下代碼:
// 設置 self.view GestureRecognizer UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(handleBackgroundTap:)]; tapRecognizer.cancelsTouchesInView = NO; [self.view addGestureRecognizer:tapRecognizer];
然后,編寫 handleBackgroundTap: 方法
/* 點擊背景時關閉鍵盤 **/ -(void)handleBackgroundTap:(UITapGestureRecognizer *)sender{ [self.userName resignFirstResponder]; [self.userPassword resignFirstResponder]; }
4、刪掉字符串中的包含的html標簽,以及轉義符
/** 刪掉字符串中的包含的html標簽,以及轉義符 strHtml : 含有html標簽的字符串 */ + (NSString *)stringByStrippingHTML:(NSString *)strHtml{ NSRange r; NSString *s = [strHtml copy]; while ((r = [s rangeOfString:@"<[^>]+>|&[^;]+;" options:NSRegularExpressionSearch]).location != NSNotFound){ s = [s stringByReplacingCharactersInRange:r withString:@""]; } return s; }
5、獲得今天為星期幾
/** 獲得今天為星期幾 */ + (NSInteger)getweek{ NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; NSDateComponents *comps = [[NSDateComponents alloc] init]; NSInteger unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSWeekdayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit; comps = [calendar components:unitFlags fromDate:[NSDate date]]; return [comps weekday] - 1; }
著作權聲明:本文由 http://wzrong.cnblogs.com 或者 http://iostour.diandian.com 原創,歡迎轉載分享。 請尊重作者勞動,轉載時保留該聲明和作者博客鏈接,謝謝!
原創文章,如需轉載請注明出處,謝謝!
歡迎訪問本人技術微博 @iOS之旅 相互交流,共同學習,共同進步!
歡迎訪問本人微博 @衛志榮