美文网首页
面试:iOS代码整理

面试:iOS代码整理

作者: CN_HarrySun | 来源:发表于2018-10-17 10:04 被阅读14次

一、懒加载

  1. Objective-C
@interface ViewController ()
@property(nonatomic, strong) NSArray *dataArray;
@end

@implementation ViewController

- (NSArray *)dataArray {
    if (!_dataArray) {
        _dataArray = @[@"data1",@"data2",@"data3"];
    }
    return _dataArray;
}
@end
  1. Swift
lazy var dataArray: [String] = {
        let array = ["data1","data2","data3"]
        return array
    }()

二、单例

  1. Objective-C
@implementation Manager
+ (instancetype)sharedManager {
    static Manager * sharedManager;
    static dispatch_once_t predicate;
    dispatch_once(&predicate, ^{
        sharedManager = [[Manager alloc] init];
    });
    return sharedManager;
}
@end
  1. Swift
class Manager: NSObject {
    static let manager = Manager()
}

三、getter和setter

  1. Objective-C
@interface ViewController ()
@property (nonatomic, copy) NSString *name;
@end

@implementation ViewController
@synthesize name = _name;

/// 同时重写setter和getter时需要synthesize
- (void)setName:(NSString *)name {
    
    if (_name != name) {
        [_name release];
        _name = [name copy];
    }
    _name = name;
}

- (NSString *)name {
    return _name;
}
  1. Swift
// swift一般不重写getter和setter方法,一般都是些willSet或者didSet
    var name: String? {
        willSet {
            self.name = newValue
        }
        didSet {
            print(self.name)
        }
    }

四、冒泡排序

  1. Objective-C
NSMutableArray * array = [@[@100, @120, @50, @10, @40, @60, @1] mutableCopy];
NSLog(@"%@",[self bubblingSortWithArray:array]);

- (NSArray *)bubblingSortWithArray:(NSMutableArray *)array {
    for (int i = 0; i < array.count; i ++) {
        for (int j = 0; j < array.count - 1 - i; j ++) {
            if (array[j] > array[j + 1]) {
                [array exchangeObjectAtIndex:j withObjectAtIndex:j + 1];
            }
        }
    }
    return array;
}
  1. Swift
var array = [100, 120, 50, 10, 40, 60, 1]
print(bubblingSort(array: &array))

func bubblingSort(array: inout [Int]) -> [Int] {
        for i in 0..<array.count {
            for j in 0..<array.count - i - 1 {
                if array[j] > array[j + 1] {
                    array.swapAt(j, j + 1)
                }
            }
        }
        return array
    }

相关文章

  • 面试:iOS代码整理

    一、懒加载 Objective-C Swift 二、单例 Objective-C Swift 三、getter和s...

  • 关于iOS面试题汇总(栏目持续更新)

    整理的一些iOS面试相关问题,持续更新,敬请关注 iOS面试题题集--iOS面试题集[https://www.ji...

  • 关于iOS面试题汇总(栏目持续更新)

    整理的一些iOS面试相关问题,持续更新,敬请关注 iOS面试题题集--iOS面试题集[https://www.ji...

  • 测试

    整理的一些iOS面试相关问题,持续更新,敬请关注 2018 iOS面试题大全---全方面剖析面试[https://...

  • 测试一

    整理的一些iOS面试相关问题,持续更新,敬请关注 2018 iOS面试题大全---全方面剖析面试[https://...

  • 面试笔记

    公司融资出现问题, 整理一下面试题开启面试的节奏超全!iOS 面试题汇总 iOS面试必看,最全梳理 2017年iO...

  • 21.objc使用什么机制管理对象内存?

    整个《面试题》都是对[2017年6月iOS招人心得(附面试题)]的整理  iOS内功篇:内存管理

  • IOS 面试整理

    内存管理 什么情况使用weak关键字,相比assign有什么不同?[https://juejin.cn/post/...

  • 直击2020——iOS全新面试题总结

    整理的一些iOS面试相关问题,持续更新,敬请关注 1、2018 iOS面试题---UI相关:事件传递,图像显示,性...

  • 直击2020——iOS 面试题大全(补充完整版)

    整理的一些iOS面试相关问题,持续更新,敬请关注 1、2018 iOS面试题---UI相关:事件传递,图像显示,性...

网友评论

      本文标题:面试:iOS代码整理

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