Meituan

One side

1. Ask about the items on your resume and then start asking about the knowledge.

2, Volley source code, in the image caching section has been discussed for a long time, HTTP caching mechanism,

3. The life cycle of the visual controller

4. Database

5, multithreading (NSTread, NSOPeration, GCDA+block)

6. The difference between HTTP protocol GET and POST

7, mobile phone adaptation of some schemes

8. Matters needing attention in real machine debugging and project on-line

Whether static methods can be overridden

The conversation lasted about one and a half hours. At the beginning, I was still a little nervous, but when the conversation began, I was much better. The interviewer spoke a little fast and always needed to be repeated by the interviewer.

Second interview

1. What does id and nILL stand for?

2. What happens when you send a message to an NILL object?

Synchronization and asynchrony in HTTP

4. The difference between MVC and MVVM.

Implement a business with MVVM. VC is the entry point. VC1 displays the list of provinces, VC2 displays the list of cities associated with provinces, and VC3 displays the list of counties associated with cities. VC to VC1, VC1 to VC2, VC2 to VC3, and then VC3 to VC. The relevant point is how to design the ViewModel and Model, and VC3 to VC.

How to write unit tests, such as writing a network library, how to test the network library, how to write a more comprehensive use case.

How code is pulled from Git to.ipa generation, and what files are generated in the process.

What books have you read recently, what frameworks have you read, and what have you learned?

Speaking of JSPatch, ask how JSPatch handles blocks.

What I’m good at.

What kind of setbacks have you encountered?

Added two new questions: How to detect memory leaks and zombie objects without Instruments.

On three sides

1. How does iOS manage resources?

Some of the more important features of Python

3, the network structure of five layers, each layer protocol, because MY network is not very good, also asked some other questions (such as the difference between MAC address and IP address, etc.).

First, I talked about my feelings and questions on the first two sides, and then I talked with the interviewer about the difference between singleton and global variables.

The difference between a Block and a Protocol, which problem a Block is used to solve.

Design patterns for iOS. Why doesn’t iOS have a “Builder” construction pattern like Java and C?

Average and worst time complexity for bubbling, insertion, and quicksort.

Heap sort.

Is there a time order n sort?

Recent problems solved from stackOverFlow, Open source frameworks read, books read, Hobbies, Most fulfilling things.

Ali.

One side

1. Introduce the project

2. In KVO, how does he know that the object of his listening has changed?

3. How do dictionaries work? How to quickly fetch value from 100W?

4, a on-line project, know that this method may go wrong, in the premise of not destroying the method, how to do?

What is the difference between a Block and a function pointer?

6. Performance optimization

YYModel and AF source code

8, how to design json to model

9, architecture,

It seems that their interviewers like to ask low-level things, such as this interview will ask me KVO questions.

Question [1], looks like very hanging, careful as not to think, may not really understand,

Question [2], this is a pure data structure problem.

Problem [3], this is the iOS runTime problem, just ISA, and some swizzling technology

Question [4] depends on how extensive your understanding is.

Second interview

1. Differences between shallow copy and deep copy

2, Block circular reference, how to solve, principle

3. Compare blocks and delegates

4. Realization principle of KVO

5. Implementation principle of Autorelease Pool

6. Message forwarding mechanism

Four conditions for thread deadlocks

The difference between a process and a thread

9. Persistence

10. Transaction characteristics

In the middle, we discussed about where the constraint of the navigation should be written. I said I would post it in layoutSubViews, and he said it would be called many times. Then we argued for a while

On three sides

Mainly asked some things about the project and asked me how to achieve some scenes

Self-introduction Introduce some difficulties of the project

What is the main thread relative to

What determines the memory footprint of an image

The role of indexes

Advantages and disadvantages of indexes

Find the smallest k number in the array

How to optimize taobao drop-down load more

Taobao page to send HTTP request process

Introduce MVVM

Know which design patterns

The three interviewers mainly talked about some specific scene problems and some foundation, the foundation should be no big problem.

headlines

One side

To introduce myself

Project related

How to customize navigation jump

Talk about the understanding of runtime

The purpose of the KVC

What should I pay attention to when using Method Swizzling? (Some checks are needed during version iteration in case the library functions change)

On the understanding of reference counting

Talk about understanding runloop

The status of runloop

Usage scenarios of AutoReleasepool

TableView optimization, how to reduce the lag

Copy assign retain weak keywords

JSON transfer Model

Code layout

Multiscreen adaptation

HTTP2

HTTP request headers and response headers

Cookie

NSCache

Design your own cache

How to implement LRU

SDWebImage

Binary tree sequential traversal (recursive and non-recursive)

Second interview

Some disadvantages of MVC

Talk about other architectures

You know how to code

Algorithm string flipping

Multithreading and the difference between them

Queue and thread relationship

A thread safety problem

What are the lock

Property keyword

Can assign be used with OC objects

Difference between copy and strong

Weak how to automatically assign nil

Why copy for immutable objects

Can we use assing in an object

Pod Update vs. Pod Install

The difference between layoutIfNeeded and setNeedsLayout

How does the packet capture tool capture HTTPS

Relationship between isEquel and Hash

The structure of the bitmap

The implementation principle of mutable array

How do I hook methods on one object without affecting other objects

How do I avoid if else

The difference between a spin lock and a mutex

On three sides

Introduce the project, mainly introduce your strengths

Will the elements of an array cop be copied

Shallow and deep copies of arrays

Why is TCP three handshakes and four waves

The headlines are always video, and it’s a dragon service. Generally speaking, it feels good, but the main thing is that you need a solid foundation,

baidu

One side

1. IOS basics

2. Basic knowledge of Python, probably multithreading, thread safety, collection classes, JVM, class related knowledge, etc.

3, iOS some source code reading

4. Excellent third-party framework source code reading

5. Knowledge of GLSurfaceView, OpenGL, Shader and drawing process.

6. Ask about current projects and specific implementations and optimizations.

7, Multi-process communication, Binder mechanism.

EventBus Volley, EventBus Volley, EventBus Volley

Second interview

Delegate, Notification, and KVO compare their strengths and weaknesses

2. How many ways to implement a square red view in the middle of a UI?

3. What is the response mechanism when the hand touches the screen? Who was the first responder? What’s the relationship between UIView and UIResponse?

4. What is the lifecycle of UIViewController? When you ask UIViewController to alloc and not use it,

Is the view of UIViewController loaded? If not, when?

Which is better, just drawing UILabel or drawing UILabel with DrawRect? Why is that? Which takes up less memory? Why is that?

6. Does AFNetworking support ipv6?

7. The project is 64-bit, why 64-bit? How do I change it to 64 bits? What is i386? What are they related to?

8. How many states do iOS apps have? Follow-up, back to the background code can be executed? Double click the home button, can the code be executed?

9. How much icon memory is generally used? For example, what is a reasonable memory footprint for a 200×300 image?

10. Why do blocks cause memory leaks?

Is [object Copy] a shallow copy or a deep copy? Why shallow copy? Which protocol does copy implement?

12. What’s the difference between images.xcassets and using Images directly?

On three sides

These are all questions about iOS, they are really detailed, they need to have a solid foundation and a really good understanding of each mechanism, otherwise it is a little difficult to answer.

1. Memory management

2. Multi-threading

3. Various queues

4. Thread locks

5, MVVM

Just to see if my iOS skills are up to scratch. Ask very fine, need solid enough foundation really just line.

tencent

One side

1, introduce the internship project, the division of tasks, what work? Introduction of internship content

2. Network related: What network library is used in the project? Have you used ASIHTTP library

3. How to implement breakpoint continuation? What do I need to set?

4, in Hangzhou HTTP request server response is fast, may be close to the server, and in Shenzhen access is very slow, what is the reason? If the user complains, how to analyze the problem?

5. Which methods of HTTP requests have been used? When to select GET, POST, or PUT?

6, TCP connection establishment process, disconnection process, why is the four handshake?

7. What are the data stores used in the project? Know what data storage methods are available in iOS? How and when to store?

8. How to bind MVVM

9. What are the differences between blocks and notifications

10. Algorithms. I asked a bunch of questions, all arrays, and then I forgot, but I just remember finding arrays at the end

11. Repeated numbers in

The difference between a process and a thread

13. What else does the operating system do besides allocate memory while the program is running

14. Methods of interprocess communication

15. How to detect whether the application is stuck

16, Released version, how to collect crash logs? Not using third party platforms like Bugly or how did those third party platforms collect crash logs?

17. Does using _property inside a block cause a circular reference? How to solve it? In addition to self->_property, can I access it using ValueForKey can I change its value inside the block setValueForkey? You can change its value, using valueForKey, explicitly using self, and holding a weak reference to self outside the block.

Second interview

1. Structure of objects in OC

2, polymorphism

3. What is Ping protocol

4. Do you know MTU

5. What is the essential difference between ARC and MRC?

6. NSThread, GCD, NSOperation. How to start a thread? Can threads be cancelled?

The connection method is called in the child thread. Why is it not called back? There is no callback because runloop is not added and destroyed as soon as the task is completed.

The difference between MVC and MVVM

9. Know which design patterns

10. What data structure is used to save an address book, including adding, deleting, changing and checking

11. When is the autoRelease variable released? Manually added, the braces are released when they end, and the system automatically releases them when the current runloop ends

When will the autorelease variable in the child thread be released?

14. Do I need to add autoreleasepool to child threads

15, GCD and NSOperation difference?

16. Have you encountered deadlocks in the project? How to solve it? Database access is thread-safe and does not cause deadlocks. What is a deadlock?

17. Viewcontroller lifecycle?

In init, set the background color. Will it work? Why would it be?

19. What new features have WWDC2016 announced? Have you been paying attention to the latest features in the Apple line

Read what source code, talk about ideas

21, two linked lists find the first same node

22. String rotation

Find the KTH node to the end of the list

24. Place a list larger than a value on the left and smaller on the right

Middle order traversal of binary tree, non-recursive

This article is reproduced by a third party