Q:

What is the "?"  or "!"  in front of a function in swift code

I am newly to swift, and when i see code like this 
self?.handleStart()

or
john!.apartment

From my studies and understanding, if the "? " operator is behind a var or functions() , 
var apartment: Apartment? 

it means the value could be "nil" .  But what about those operator in front of the "."(dot) and functions ? ,  or the "!" ( not operator?)  as above first example ?  

A:

In sort It's a options of the properties and parameters in methods
that,
?  = Allows nil (if you pass in method parameter arguments than it want value so it the parameter type ?  than it allows null/nil object.) 
AND
!  = Does not allows null/nil (If you pass in method parameter arguments than it want value if parameter type !  than it does not allow null/nil object.  You have to pass not nil object). 
that's it.