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管理工具),添加需要添加的文件
点击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之后,程序启动打印乱七八糟日志的解决方案
- 打开Product->Scheme->Edit Scheme;
-
在这里添加OS_ACTIVITY_MODE,并赋值disable
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.......
}
}