iOS杂技

1. 这里是列表文本const(常量) extern static 等使用场景。

const NSString            * NAME_ONE = @"你好";            //全局常量,其他类中可访问 extern NSString 

static const NSString   *NAME_TWO = @"小羊";            //static 修饰 成局部变量 只能内部访问

NSString         *const WANG_NAME = @"狗";            //用此种写法代替宏(Macro)定义

在其他类文件中要想访问全局常量 :

extern NSString *NAME_ONE; 获得(NAME_ONE)

在app中可以创建一个常量类(XKConst),m文件定义各种常量

//定义常量

NSString * const CONST_NAME = @"小明";
int const SCREEN_SIZE_W = 200;

在h 文件中提供外界访问声明

UIKIT_EXTERN NSString *const CONST_NAME;
UIKIT_EXTERN int const  SCREEN_SIZE_W;

在需要用到的地方导入头文件 XKConst.h 可以直接获取SCREEN_SIZE_W 的值

2. 软件通话状态安Home健退到后台,屏幕上红色导航条显示正在通话,点击回到软件通话界面。在info.plist中设置。

<key>UIBackgroundModes</key>    
<array> 
<string>voip</string>
<string>audio</string>  
</array>

app名字

在项目中添加 InfoPlist.strings 文件,在文件中写入 CFBundleDisplayName = appName。

RGB 颜色 宏定义

#define RGB_Color(R,G,B,A) [UIColor colorWithRed:R/255.0 green:G/255 blue:B/255 alpha:A]
but.BackgroundColor = RGB_Color(230,200,50,1);

navigationbar 背景颜色以及标题字体颜色

self.navigationController.navigationBar.barTintColor = RGB_Color(230,200,50,1);
[self.navigationController.navigationBar         setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor whiteColor]}];

定义各种宏的规范

参照。。。。。。

统计项目中代码总行数。

终端cd 到项目目录,输入:

 find . "(" -name "*.m" -or -name "*.strings" -or -name "*.h" ")" -print | xargs wc -l  

获得某路径下的文件大小

    (1).   NSData *Fdata = [NSData dataWithContentsOfFile:fpath];
            long long   fileSize = [Fdata length];

    (2).  NSDictionary *fileAttributes = [[NSFileManager defaultManager]                                  attributesOfItemAtPath:tfpath error:NULL];
           long long  fileSize = [[fileAttributes objectForKey:NSFileSize] unsignedLongLongValue];

隐藏tableview多余的分割线

    - (void)setExtraCellLineHidden: (UITableView *)tableView{
        UIView *view =[ [UIView alloc]init];
        view.backgroundColor = [UIColor clearColor];
        [tableView setTableFooterView:view];
        [tableView setTableHeaderView:view];
    }

根据文字内容计算tableviewcell高度,在heightForRow 代理中返回即可。

- (CGFloat)sizeHeigtWithItem:(MHCommanFileInfo*)info {

    NSString *value = info.fileName;

    NSInteger width = [UIScreen mainScreen].bounds.size.width - 152;

    //获取当前文本的属性

    NSAttributedString *attrStr = [[NSAttributedString alloc] initWithString:value];

    //_text.attributedText = attrStr;

    NSRange range = NSMakeRange(0, attrStr.length);

    // 获取该段attributedString的属性字典

    NSDictionary *dic = [attrStr attributesAtIndex:0 effectiveRange:&range];

    // 计算文本的大小

    CGSize sizeToFit = [value boundingRectWithSize:CGSizeMake(width - 16.0, MAXFLOAT) // 用于计算文本绘制时占据的矩形块

                                           options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading // 文本绘制时的附加选项

                                        attributes:dic        // 文字的属性

                                           context:nil].size; // context上下文。包括一些信息,例如如何调整字间距以及缩放。该对象包含的信息将用于文本绘制。该参数可为nil

    return sizeToFit.height ;

}

tableviewcell 滑动删除或其他的系统方法

    -(NSArray<UITableViewRowAction*>*)tableView:(UITableView *)tableView             editActionsForRowAtIndexPath:(NSIndexPath *)indexPath

{  
    UITableViewRowAction *rowActionSec = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault  title:@"下载"    handler:^(UITableViewRowAction * _Nonnull action, NSIndexPath * _Nonnull indexPath) {
    //点击时间相关代码                                                                             
          }];

    rowActionSec.backgroundColor = [UIColor orangeColor];
    NSArray *arr = @[rowActionSec];
    return arr;
}

获取键盘高度 键盘弹出时上推界面

   S1: 注册通知

-(instancetype)init{
    if (self = [super init]) {
        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWasShown:) name:UIKeyboardWillShowNotification object:nil];
        [[NSNotificationCenter defaultCenter]  addObserver:self selector:@selector(keyboardWasHidden:) name:UIKeyboardWillHideNotification object:nil];
    }
    return self;
}

    S2: 方法中改变Fram

- (void) keyboardWasShown:(NSNotification *) notif
{
    NSDictionary *info = [notif userInfo];
    NSValue *value = [info objectForKey:UIKeyboardFrameBeginUserInfoKey];
    CGSize keyboardSize = [value CGRectValue].size;
    _keybordH = keyboardSize.height;

    [UIView animateWithDuration:0.3 animations:^{
        CGRect r = _botomBarV.frame;
        r.origin.y -= _keybordH;
        [_botomBarV setFrame:r];
    }];
}
- (void) keyboardWasHidden:(NSNotification *) notif
{
    [UIView animateWithDuration:0.3 animations:^{
        CGRect r = _botomBarV.frame;
        r.origin.y += _keybordH;
        [_botomBarV setFrame:r];
    }];
}

保存图片到手机相册

-(void)saveToAlbum{
UIImageWriteToSavedPhotosAlbum(_imageV.image, self, @selector(imageSavedToPhotosAlbum:didFinishSavingWithError:contextInfo:), nil);
}
- (void)imageSavedToPhotosAlbum:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo
{
    NSString *message;
    if (!error) {
        message = @"成功保存到相册";
    }else    message = [error description];
  //  NSLog(@"message is %@",message);
}

字符串的小方法

1. iOS版本字符串(4.3与4.3.2)比较
    NSString *str1 = @"6.1";
    NSString *str2 = @"6.0.3";
    if (![str1 isEqualToString:str2]) {
        if (([str1 compare:str2] != NSOrderedAscending)) {
            NSLog(@"str1 是高版本");
        }else {
            NSLog(@"str2 是高版本");
        }
    }else{
        NSLog(@"版本相等");
    }
   //NSOrderedAscending 文档解释 The left operand is smaller than the right operand.
2. 判断某个类名与字符串相同
     [NSStringFromClass([wid class]) isEqualToString:@"UIRemoteKeyboardWindow"]
3 . 根据字符串内容及属性字典计算所占  size
  NSDictionary *attributes = @{NSFontAttributeName:[UIFont systemFontOfSize:13.0]};    
  CGSize size = [message.contentInfo boundingRectWithSize:CGSizeMake(200, MAXFLOAT) options:NSStringDrawingTruncatesLastVisibleLine | NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:attributes context:nil].size;

字典倒叙排列

     NSArray *arr = [NSArray arrayWithArray:@[@"aaa",@"bbb",@"ccc"]];
     _dataArr = [[[arr reverseObjectEnumerator] allObjects] mutableCopy];

cocoaPod 使用

    cd 到项目目录下 touch  podfile  文件及
    vim podfile   i 插入  编写:

    platform :ios, '7.0'
//inhibit_all_warnings!

xcodeproj 'Demo.xcodeproj'

target :Demo1 do
  pod 'MBProgressHUD', '~> 0.9.1'
  pod 'AFNetworking', '~> 2.5.4'
  pod 'MJRefresh', '~> 2.3.2'
end
target :Demo2 do
  pod 'MBProgressHUD', '~> 0.9.1'
  pod 'AFNetworking', '~> 2.5.4'
  pod 'MJRefresh', '~> 2.3.2'
end

esc  :    wq  退出   执行 pod install

创建自己的pod库(公有私有),注意使用时podfile 文件要添加公有地址和私有地址
[地址链接](http://blog.wtlucky.com/blog/2015/02/26/create-private-podspec/)

查看当前路径文件夹下所有文件

   NSDirectoryEnumerator *enumerator = [[NSFileManager defaultManager]enumeratorAtPath:[MHAppManager instance].favoritesDirectory];
    for (NSString *fileName in enumerator){
        NSLog(@"%@",fileName);
   }

main函数 crash 代码定位

 edite shceme  --->Run -->arguments-->environment variables 
添加key values  :NSZoobieEnable    YES
breakpoint 界面调试

mysql 触发器/事务/存储过程/自定义函数/index原理/view作用

存储过程- (循环)

drop procedure if exists p_while_do;  
create procedure p_while_do()  
begin  
    declare i int;  
        set i = 1;  
        while i <= 10 do  
            /// TODO 循环存数据等。。。  
            set i = i + 1;  
        end while;  
end;  
  
call p_while_do();
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,718评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,683评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,207评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,755评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,862评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,050评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,136评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,882评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,330评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,651评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,789评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,477评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,135评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,864评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,099评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,598评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,697评论 2 351

推荐阅读更多精彩内容

  • 1.1 VBA是什么 直到90年代早期,使应用程序自动化还是充满挑战性的领域.对每个需要自动化的应用程序,人们不得...
    浮浮尘尘阅读 21,726评论 6 49
  • 不管什么车 也是车 不管什么景 也是风景 不管多长的旅途 也是旅途 阳光绿草枫叶 微风摇曳背影 下班真好
    宏波_阅读 209评论 0 2
  • 有人说 你可以每天吃寿司 刺身 拉面 多幸福 可是没你在身边 吃的每一餐都无滋无味 我们在一起哪怕捧着一碗清水煮面...
    九九而已阅读 159评论 0 0
  • 图/月亮公主 参加顾釉止简笔画训练营,坚持手绘30天! 第七天打卡啦!
    盖是那么美阅读 365评论 18 23