美文网首页
iOS开发经典问题记录

iOS开发经典问题记录

作者: 风紧扯呼丶 | 来源:发表于2019-12-08 15:06 被阅读0次

    持续更新...

    Copy/assign/weak/stong/retain使用总结

    什么情况用什么类型?

    • @property (nonatmic, copy/assing/weak/strong)

    • Copy- string/NSMutableString/block

    • Assign-基本数据类型

    • Weak-ui控件 代理 id<delegate> delegate

    • Strong-其他类的成员变量. 其他oc对象

    • strong强指针 强引用,只要有指针还连接着该对象,那么该对象就不会被销毁。 (循环引用,内存泄露)

    • weak弱指针 弱引用,只要该对像为空,那么所有指针都为空。

    • iOS5以后 retain = strong assign = weak

    //打印各种结构体
    NSLog(@"%@", NSStringFromCGPoint(self.view.center));   *//打印结构体*
    

    自定义ui控件property使用strong还是weak

    //如果使用strong
    @property (nonatomic, strong) UIDatePicker *myDatePicker;
    self.myDatePicker = [[UIDatePicker alloc] init];
    直接操作self.myDatePicker
    
    //如果使用weak
    @property (nonatomic, weak) UIDatePicker *myDatePicker;
    UIDatePicker *myDatePicker = [[UIDatePicker alloc] init];
    myDatePicker.center = self.view.center;
    [self.view addSubview:myDatePicker];
    self.myDatePicker = myDatePicker;   
    
    //监听值的改变
    [self.myDatePicker addTarget:self action:@selector(datePickerDateChanged:) forControlEvents:UIControlEventValueChanged];
    

    info.plist文件介绍:修改app名称

    Bundle name $(product_name) 对应软件名称, 修改后需要clean, 卸载原先软件

    .pch头文件内容 全局共用

    #ifdef __OBJC__  //下边定义只能用到.m .mm文件
    //自动打开关闭日志功能
    #ifdef DEBUG  //调试阶段
    #define DWLog(...) NSLog(__VA_ARGS__)   //一键注释所有log
    #else    //发布阶段
    #define DWLog(...)
    #endif
    #endif
    
    PCH使用
    https://www.jianshu.com/p/2e839ef4768d
    

    创建不包含stoaryboard的项目

    • 删除sb
    • 去除plist中的main入口

    保存透明文件到相册-code

    //保存到手机相册时,就变成了白色底
    NSData* data = UIImagePNGRepresentation(image);
    UIImage* pngImage = [UIImage imageWithData:imageData];
    UIImageWriteToSavedPhotosAlbum(pngImage, nil, nil, nil);
    

    xcode设置中文属性

    • 在info.plist中设置local属性为china

    无法显示模拟器

    方法一:

    1.关闭Xcode。

    2.找到要打开的应用程序的:程序名.xcodeproj,右键-显示包内容。

    3.看到里面有三个文件:project.pbxproj、project.xcworkspace和xcuserdata。把整个xcuserdata拖进废纸篓。

    4.重新打开应用程序就好了。

    方法二:

    也搜索到有人用这个方法,不知道行不行:在打开的应用程序中找到:target->built settings->Architectures->Base SDK.改成需要的iOS版本

    方法三:

    修改一下 project支持的ios版本 ,因为我们好多新建的项目版本的默认支持的版本都是当前Xcode 最高的版本,所以你只需要在项目的project 的地方去修改一下支持的版本就行了

    progect - info - iOS Deployment Target

    定时器动画刷帧

    //创建 刷帧1秒60次
    CADisplayLink *link = [CADisplayLink displayLinkWithTarget:self selector:@selector(setNeedsDisplay)];
    //启动
    [link addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];
    
    
    //定时器
    [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(setNeedsDisplay) userInfo:nil repeats:YES];
    

    info.plist文件移动到Supporting Filse报错

    error:Build input file cannot be found:

    设置项目 TARGETS->Build Settings->Packaging->info.plist

    路径设置在Supporting Files下

    键盘弹出/键盘输入/中文输入法

    打开关闭模拟器键盘

    command + k

    mac键盘能否输入

    Hardware-Keyboard-Connect Hardware Keyboard 快捷键: command + shift + k

    切换中文输入法

    Settings-->General-->Language & Region-->iPhone Language -->简体中文; Region -->中国

    mac锁屏恢复后wifi一直转圈

    airportd占用cpu过高,sudo killall airportd

    相关文章

      网友评论

          本文标题:iOS开发经典问题记录

          本文链接:https://www.haomeiwen.com/subject/eeymgctx.html