温故而知新

tableView点击cell之后不会一直有背景效果
- [tableView deselectRowAtIndexPath:indexPath animated:NO]; 
- cell.selectionStyle = UITableViewCellSelectionStyleNone;(始终没有效果)
对比两个文件的改动
  • 右击Xcode -> Open Developer Tool -> FileMerge
当服务器返回的字段和系统的重名时
+(NSDictionary *)mj_replacedKeyFromPropertyName
{
    return @{
             @"ID": @"id",
             @"desc": @"description"
             };
}```
- 安装cocapod插件的时候报路径错误时可以用以下方式解决
```objct
sudo gem uninstall cocoapods
sudo gem install -n /usr/local/bin cocoapods
sudo chmod +rx /usr/local/bin/
  • 设置scrollview的contensize能在viewdidload里设置吗?
    可以设置,但是不建议在这个方法里设置,因为此时view还没有完全显示出来,一些尺寸是不太准确的
//图片现实增加渐显效果(分类里实现的)
- (void)setFadeImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholder {
    
    [self sd_setImageWithURL:url placeholderImage:placeholder completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
        
        if (cacheType == SDImageCacheTypeNone){
            CATransition * animation = [CATransition animation];
            [animation setDuration:0.5];
            [animation setType:kCATransitionFade];
            animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
            [self.layer addAnimation:animation forKey:@"transition"];
        }
        self.image = image;
        [self setNeedsLayout];
    }];
}
使用sourceTree时 避免每次都需要输入密码
 git config credential.helper osxkeychain sourcetree

输出打印接口返回的东西(防止乱码)

注意:因为是重写父类方法,所以项目中不用导入该分类 就能显示出该效果
建立一个字典的分类
@implementation NSDictionary (Log)
- (NSString *)descriptionWithLocale:(id)locale
{
    NSMutableString *string = [NSMutableString string];
    
    // 开头有个{
    [string appendString:@"{\n"];
    
    // 遍历所有的键值对
    [self enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
        [string appendFormat:@"\t%@", key];
        [string appendString:@" : "];
        [string appendFormat:@"%@,\n", obj];
    }];
    
    // 结尾有个}
    [string appendString:@"}"];
    
    // 查找最后一个逗号
    NSRange range = [string rangeOfString:@"," options:NSBackwardsSearch];
    if (range.location != NSNotFound)
    [string deleteCharactersInRange:range];
    
    return string;
}
@end

@implementation NSArray (Log)

- (NSString *)descriptionWithLocale:(id)locale
{
    NSMutableString *string = [NSMutableString string];
    
    // 开头有个[
    [string appendString:@"[\n"];
    
    // 遍历所有的元素
    [self enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
        [string appendFormat:@"\t%@,\n", obj];
    }];
    
    // 结尾有个]
    [string appendString:@"]"];
    
    // 查找最后一个逗号
    NSRange range = [string rangeOfString:@"," options:NSBackwardsSearch];
    if (range.location != NSNotFound)
    [string deleteCharactersInRange:range];
    
    return string;
}

@end
如何查询git上有没有人改动某个文件
 终端进入到该文件目录下 然后输入 git log 文件名

根据类名得到控制器并跳转

    Class class = NSClassFromString(ViewControllerName);
    if (class) {
        UIViewController *ctrl = class.new;
        [self.navigationController pushViewController:ctrl animated:YES];
    }
    [self.tableView deselectRowAtIndexPath:indexPath animated:YES];

svn无法添加.a文件解决

打开Chrome(svn管理工具),添加需要添加的文件

温故而知新_第1张图片
svn

点击View -> Show lgnored ltems 显示隐藏文件,然后再添加

起别名、

  • 不建议这么写:
typedef enum {
    UserSe_Man,
    UserSe_Woman
}UserSex;
  • 建议改写成这样式的:
typedef NS_ENUM(NSInteger, CYLSex) {
    CYLSexMan,
    CYLSexWoman
};
  • 接口返回的参数和系统的有冲突咋办?参考如下:

在数据反序列化、转模型的过程中,服务器返回的字段如果以 init
开头,所以你需要定义一个 init
开头的属性,但默认生成的 setter
与 getter
方法也会以 init
开头,而编译器会把所有以 init
开头的方法当成初始化方法,而初始化方法只能返回 self 类型,因此编译器会报错。
这时你就可以使用下面的方式来避免编译器报错:

@property(nonatomic, strong, getter=p_initBy, setter=setP_initBy:)NSString *initBy;
BAD_ACCESS在什么情况下出现?

访问了野指针,比如对一个已经释放的对象执行了release、访问已经释放对象的成员变量或者发消息。 死循环

_objc_msgForward函数是做什么的,直接调用它将会发生什么?

_objc_msgForward是 IMP 类型,用于消息转发的:当向一个对象发送一条消息,但它并没有实现的时候,_objc_msgForward
会尝试做消息转发。

iOS9之后网络请求配置

在Info.plist中添加NSAppTransportSecurity类型Dictionary。
在NSAppTransportSecurity下添加NSAllowsArbitraryLoads类型Boolean,值设为YES

Xcode8之后,程序启动打印乱七八糟日志的解决方案
  1. 打开Product->Scheme->Edit Scheme;
  2. 在这里添加OS_ACTIVITY_MODE,并赋值disable


    温故而知新_第2张图片
    Paste_Image.png
CocoaPods更新慢
  • 不升级CocoaPods的spec仓库的操作(速度快): pod install --no-repo-update

判断点击了那个视图

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    [super touchesBegan:touches withEvent:event];
    UITouch *touch = [touches anyObject];
    CGPoint touchPoint = [touch locationInView:self];
    if (CGRectContainsPoint(self.headImageView.frame, touchPoint))
    {
        //点击头像
        // you core......
    }
    else if (CGRectContainsPoint(self.commentLable.frame, touchPoint)){
        //点击回复及评论
        // you core.......
    }
}

你可能感兴趣的:(温故而知新)