1,IOS10 New Privacy settings
IOS10 added a new permission control scope if you try to access these privacy data, you get the following error:
> This app have crashed because it attempted to access privacy-sensitive> data without a usage description. The app ' s info.plist must contain> an nscamerausagedescription key with a string value explaining to the> user how T He app uses this data
Because it attempts to access sensitive data when there is no info.plist in the application
Set privacy key to the new privacy setting as follows:
Privacy Setting2, Os_activity_mode
Update Xcode 8 If the console appears enable_level:0, persist_level:0, default_ttl:0, info_ttl:0, debug_ttl:0, Generate_symptoms:0enable_ Oversize: The following methods can be set:
Edit scheme-> Run, Arguments, add os_activity_mode = Disable inside environment variables
3,IOS10 Layoutifneed
IOS10 calling Layoutifneed on a control will only evaluate the constraint separately, and the control it constrains will not take effect, and the previous effect needs to be called on the parent control layoutifneed
4, NSDate
SWIFT3.0 will convert OC nsdate to data type, and some operations nsdate third-party libraries will flash back
5, Notification
SWIFT3.0 a notification constant of a string type is defined as a struct
static Let Mygreatnotification = Notification.name ("mygreatnotification")//Use site (no change) Notificationcenter.default (). Post (name:MyController.MyGreatNotification, object:self) '
6, Zip2sequence (
::) be removed
The Swift3.0zip2sequence (_:_:) method is replaced with a zip (_:_:)
7, range<>.reversed is removed
After the Swift3.0range<>.reversed method is removed, it is replaced with <collection>[<range>].indices.reversed ().
var array = ["A", "B", "C", "D"]for I in array.indices.reversed () { print ("\ (i)")} Output: 3 2 1 0
8, range added to four types
Rangecountablerangeclosedrangecountableclosedrange
Different expressions generate a different range
var countablerange = 0..<20 ' Countablerange (0..<20) ' var countableclosedrange = 0...20 ' Countableclosedrange ( 0...20) '
9, Swift3.0 Collection New Index (_:) Series method
Index successor (), predecessor (), Advancedby (_:), Advancedby (_:limit:), or Distanceto (_:) methods are removed, and these operations are moved to collection
Myindex.successor () = Mycollection.index (after:myindex) myindex.predecessor () = Mycollection.index (Before:myindex) myindex.advance (by: ...) = Mycollection.index (Myindex, Offsetby: ...)
IOS10 Uistatusbar Expired
If you need to operate Uistatusbar, the IOS10 needs to be changed to
-(Uistatusbarstyle) Preferredstatusbarstyle { return uistatusbarstyledefault;}
One, iOS10 uicollectionview performance optimization
The biggest change in iOS10 Uicollectionview is the addition of pre-fetching (preload),
If you look at Uicollectionview's latest API you can see that the following properties have been added:
@property (nonatomic, weak, nullable) id<uicollectionviewdatasourceprefetching> Prefetchdatasource @property ( Nonatomic, getter=isprefetchingenabled) BOOL
The iOS10 pre-fetching is turned on by default, and if for some reason you do not want to turn on pre-fetching, you can disable it by setting the following:
Collectionview.isprefetchingenabled = False
The uicollectionviewdatasourceprefetching protocol is defined as follows:
@protocol uicollectionviewdatasourceprefetching <NSObject> @required//Indexpaths is ordered ascending by Geometric distance from the collection view-(void) CollectionView: (Uicollectionview *) CollectionView Prefetchitemsatindexpaths: (Nsarray<nsindexpath *> *) indexpaths Ns_available_ios (10_0); @optional//IndexPaths That previously were considered as candidates for pre-fetching, but were not actually used; May is a subset of the previous call to-collectionview:prefetchitemsatindexpaths:-(void) CollectionView: ( Uicollectionview *) CollectionView cancelprefetchingforitemsatindexpaths: (Nsarray<nsindexpath *> *) indexPaths Ns_available_ios (10_0); @end
iOS10 UITableView Performance Optimization
As with Uicollectionview UITableView also adds pre-fetching technology, UITableView adds the following properties:
@property (nonatomic, weak) id<uitableviewdatasourceprefetching> Prefetchdatasource Ns_available_ios (10_0);
Strangely, UITableView did not find the definition of the isprefetchingenabled attribute.
13,ios10 Uiscrollview New Refreshcontrol Properties
Uiscrollview added the Refreshcontrol property
@property (Nonatomic, Strong, nullable) Uirefreshcontrol *refreshcontrol Ns_available_ios (10_0) __tvos_prohibited;
This means that both Uicollectionview and UITableView support the Refresh function.
We can also use Uirefreshcontrol out of Uitableviewcontroller.
Swif3.0 New scope access level Fileprivate
There are currently the following access levels:
- Open (public)
- Internal (internal)
- Out-of-file private (Fileprivate)
- Proprietary (private)
15,swift3.0 allow keywords as parameter labels
Swift3.0 start we will be able to use the inout var let keyword as the parameter label
Swift 3 calling with argument label: calculaterevenue (for Sales:numberofcopies, in . dollars) //Swift 3 de Claring with argument label: calculaterevenue (for Sales:int, in currency:currency) func touchesmatching ( Phase:nstouchphase, in View:nsview?) Set<nstouch>
If you insist on using the inout var let keyword you can use the ' Wrap parameter label
Func addparameter (name:string, ' inout ': Bool)
IOS 10/swift 3.0/xcode 8 Summary