前言:有些代碼偶爾用一次根本記不住,每次都要搜一下,在此做個記錄。
1.以字符串的形式輸出frame
NSLog(@"%@",NSStringFromCGRect(self.view.frame));
2.URL中有漢字的UTF-8轉碼
NSString*encodedString=[urlStrstringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
3.weak修飾block
__weak typeof(self) weakSelf =self;
4.粘貼板
UIPasteboard*pasteboard= [UIPasteboardgeneralPasteboard];
pasteboard.string=@"賦值粘貼";
5.枚舉的寫法
typedef enum{
Spring =0,//春天
Summer =1,//夏天
Autumn =2,//秋天
Winter =3//冬天
} SeaconState;
6. NSLog打印控制
#ifdef?DEBUG
#define?NSLog(...) NSLog(__VA_ARGS__)
#define debugMethod() NSLog(@"%s",?__func__)
#else?
#define?NSLog(...)
#define?debugMethod()
#endif
7.含有%號的url的轉碼
NSString*encodeUrl = (NSString*)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,(CFStringRef)url,(CFStringRef)@"!{{TEXTPLACEHOLDER}}'()*+,-./:;=?@_~%#[]",NULL,kCFStringEncodingUTF8));
8.block
作為一個變量
returnType(^blockName)(parameterTypes) = ^returnType(parameters) {...};
作為一個屬性
@property (nonatomic, copy,nullability)returnType(^blockName)(parameterTypes);
作為一個函數的參數
- (void)someMethodThatTakesABlock:(returnType(^nullability)(parameterTypes))blockName;
方法調用
[someObject someMethodThatTakesABlock:^returnType(parameters) {...}];
typedef
typedef returnType(^TypeName)(parameterTypes);
TypeNameblockName = ^returnType(parameters) {...};