好久没来了 冒个泡 整理下

判断是否为模拟器

 #define isSimulator (NSNotFound != [[[UIDevice currentDevice] model] rangeOfString:@"Simulator"].location)
    if (isSimulator) {
        if ([[UIScreen mainScreen] bounds].size.height > 700) {
            core.device = 2;
        }else{
            core.device = 4;
        }
    }


cell 下划线

tableView.separatorStyle = UITableViewCellSeparatorStyleNone; 



- (void)drawRect:(CGRect)rect
{
    CGContextRef context = UIGraphicsGetCurrentContext();
   
    CGContextSetFillColorWithColor(context, [UIColor clearColor].CGColor);
    CGContextFillRect(context, rect);
   
    //上分割线,
    CGContextSetStrokeColorWithColor(context, [UIColor whiteColor].CGColor);
    CGContextStrokeRect(context, CGRectMake(5, -1, rect.size.width, 1));
   
    //下分割线
    CGContextSetStrokeColorWithColor(context, [UIColor whiteColor].CGColor);
    CGContextStrokeRect(context, CGRectMake(5, rect.size.height-1, rect.size.width , 1));
}

Json

//使用系统自带的函数把json格式的字符串转换成 NSDictionary 然后再依次解析
NSDictionary *jsonDictionary = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&jsonParseError];



NSString

  NSString *test = @"111111"
        @"2222”;

test  ==  1111112222


Spotlight-like Hint View   引导

http://code4app.com/ios/Spotlight-like-Hint-View/4f9cba5106f6e7a71f000004


oc 反射

   int i;
        int propertyCount = 0;
        objc_property_t *propertyList = class_copyPropertyList([/*NSMutableArray*/** class], &propertyCount);
        
        for ( i=0; i < propertyCount; i++ ) {
            objc_property_t *thisProperty = propertyList + i;
            const char* propertyName = property_getName(*thisProperty);
            NSLog(@"Person has a property: '%s'", propertyName);
        }


方法省略参数

@interface NSMutableArray (variadicMethodExample)

- (void) appendObjects:(id) firstObject, ...;  // This method takes a nil-terminated list of objects.

@end

@implementation NSMutableArray (variadicMethodExample)
- (void) appendObjects:(id) firstObject, ...
{
    id eachObject;
    va_list argumentList;
    if (firstObject)                      // The first argument isn't part of the varargs list,
    {                                   // so we'll handle it separately.
        [self addObject: firstObject];
        va_start(argumentList, firstObject);          // Start scanning for arguments after firstObject.
        while (eachObject = va_arg(argumentList, id)) // As many times as we can get an argument of type "id"
            [self addObject: eachObject];               // that isn't nil, add it to self's contents.
        va_end(argumentList);
    }
}
@end


mac操作

显示完整的访问路径

defaults write com.apple.finder _FXShowPosixPathInTitle -bool TRUE;killall Finder


恢复默认状态

defaults delete com.apple.finder _FXShowPosixPathInTitle;killall Finder



输入想要去的文件夹路径
按键盘 Command + Shift + G



LAST SHUTDOWN

单例

+ (instancetype)shareDb
{
    static STDbHandle *stdb;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        stdb = [[STDbHandle alloc] init];
    });
    return stdb;
}

vvDocumenter Xcode注释工具使用


Xcode文档代码注释工具vvDocumenter
插件下载:https://github.com/onevcat/VVDocumenter-Xcode
安装:运行下载的vvDocumenter工程,重启Xcode
使用:方法前面输入///,自动生成注释框架,修改对应说明


当UILabel用来展示动态内容的时候,直接调用即可。
1 [titleLabel resizeLabelByContent];


1. 试了Hide during application launch的勾选选项,不可以
2. 试了ViewController中用函数,还是不可以

1
2
3
4
- (BOOL)prefersStatusBarHidden
{
    return YES;//隐藏为YES,显示为NO
}
 后边找到这个方法,终于可以了,Mark一下!
在Info.plist添加一个新的row,"View controller-based status bar appearance",然后把键值设置为NO.
要显示状态栏,可以通过代码设置。
1
2
// 显示状态栏
 [[UIApplication sharedApplication] setStatusBarHidden:FALSE];


xcode用Tab建立了多个子界面
操作方式:option+shift,然后点击要打开的文件,会出现以下选项~



NSRecursiveLock
 NSRecursiveLock类定义的锁可以在同一线程多次获得,而不会造成死锁。

一个递归锁会跟踪它被多少次成功获得了。每次成功的获得该锁都必须平衡调用锁住和解锁的操作。只有所有的锁住和解锁操作都平衡的时候,锁才真正被释放给其他线程获得。



NSFileManager

contents 内容
create    创建
remove  移动
copy      复制
handler 处理者
exists 存在
readable
writable
attributes


保存图片

- (void)downloadImageWithURL:(NSString *)url toSavePath:(NSString *)toSavePath{
   
    NSData *imageData = [NSData dataWithContentsOfURL:[NSURL URLWithString:url]];
    UIImage *image = [UIImage imageWithData:imageData];
    if (image != nil) {
        [UIImagePNGRepresentation(image)writeToFile:toSavePath atomically:YES];
    }
}


SELECT DISTINCT 语句


http://www.w3school.com.cn/sql/sql_distinct.asp

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值