Generics

Generics are another important object-oriented concepts in,In addition to multi-state,It further increases the range of reuse code,For Swift language,,Generics throughout its always。

From Print() Speaking

We start from the first day of class in the use of this global function,It allows us to show the statement on the screen,Very simple to use,It can pass a string。

Incoming string displayed string,Incoming shaping on the digital display ......

and many more! As a function,How can it receives two different parameters!

ok we use[……]

Click link to continue reading...

Always given:Exception Handling

This lesson we get to know about the Swift error handling

In calling the method and the time to write a wheel,There will always be wrong sorts of weird,Normal is already compiled software,Some unexpected errors also occur。but,Among these errors,There are some that can be identified and captured - they can be expected。

Predictable error

Why do we say that there are some errors that can be expected to get it? For example, reading a file when the file does not exist、Save a document when the directory is not writable、Download the file when no network connection、transmit a parameter[……]

Click link to continue reading...

Static methods and static properties

Not all of the dynamic

we all know,The method is put in the running instance。That is the result of the implementation of the method is based on the instance property came,The property is an example of the current state of change - we call it "dynamic"。

But really all it is dynamic? In fact, not,Some methods give results which will directly and according to your call,It does not need to change according to the change of the instance attribute-that is to say, it will produce a definite result anyway,We call such methods static methods,It is static。

Let's take a look:
[crayo[……]

Click link to continue reading...

Lifetime:Automatic Reference Counting

In front of so many bedding,Now finally we want to address this thing the garbage collector。

ARC

This is not the Ark ...... This is automatic reference counting (Automatic Reference Counting),This thing is used to manage Apple memory。

Its function is that the garbage collector on the garbage heap。It would not have been able to ensure that all heap objects that reside in the running to be released in the heap。It ensures that memory will be reallocated to other objects to be used。

What is released

Speaking of the object will not be taken away to the garbage collector,Then it depends on the citation meeting[……]

Click link to continue reading...

Initializer

At the end of the previous lesson,We finally made clear the process of creating an object,Then,Speaking create an object looks like is to call a method,This method may in the end what is it?

Initializer

Not wrong,When we initialize a class object when,We did call a method - initializer。

Initializer method is actually a special provision of the,It is possible for the class to initialize。

Let's imagine,If no initializer,So we call the class will certainly be stereotyped,Every time they have to create an object,Then modify its properties?[……]

Click link to continue reading...

"Stack":In the end what happened "heap",What is a "stack"?

It's time to look at the living space objects and methods - and want to learn object-oriented,I do not know where to put the methods and objects is a very embarrassing thing - after all, we still have to face the garbage collector,Want to make the garbage collector to help you do more,We have to understand its working mechanism to some extent,Learn how and where to store objects,if not,You have to write a program to the vulnerable!

We have already mentioned the basic concept of the heap in front of the course which,Yes,Objects (instances) is placed on the heap - I put it vividly described as "garbage"。

Be piled[……]

Click link to continue reading...

"Fatal square":Multiple inheritance and protocols

Last time we mentioned agreement,But we talk about it the way an application,This lesson we take a deeper look at this class and used up almost exactly what profound esoteric protocol。

From now on,We again review the shameful inheritance tree once:

Here we wrote a weapon ...... is used for attack and defense。Then,As a game,Model weapons can not just only in one place,Otherwise development costs will be too high - we want to drain as much as possible the value of the code。

Communicate with the designers of our future,designers want[……]

Click link to continue reading...

protocol:Allowed instantiated class and method must be rewritten

Rewriting said method,We come back to look at the inheritance tree:

This should look okay,We can create an instance of the sword,Create an instance of a pistol ......

But if I have to write it?

So the question is:excavator……

Do not,Our problem is "weapon" in the end is what?

We say "animal",Man is an animal,Birds are animals,dog、Cats are animals,That there is no animal animals?

The answer is no[……]

Click link to continue reading...

customize:override!

Said so many times rewriting,This time we have to rewrite treat seriously what method。

contract

We say,Inheritance is the equivalent of signing a contract,We inherited out of the subclass must comply with this contract,So even if you want to do something where no contract,Must comply with contract specifications,so,You override methods,It must also comply with the type of process。

We talked about the type of approach,It ()->() This represented。so,Overridden method must also comply with this type of argument that is receiving the return parameter type to be the same as the name of the same ...... Need I say more?[……]

Click link to continue reading...