Documentation Archive Developer
Search

SceneKit Changes for Objective-C

SceneKit

ModelIO.h (Added)

Added MDLAsset(SCNModelIO)
Added MDLCamera(SCNModelIO)
Added MDLLight(SCNModelIO)
Added MDLMaterial(SCNModelIO)
Added MDLMesh(SCNModelIO)
Added MDLObject(SCNModelIO)
Added MDLSubmesh(SCNModelIO)
Added SCNCamera(SCNModelIO)
Added SCNGeometry(SCNModelIO)
Added SCNGeometryElement(SCNModelIO)
Added SCNLight(SCNModelIO)
Added SCNMaterial(SCNModelIO)
Added SCNNode(SCNModelIO)
Added SCNScene(SCNModelIO)

SceneKitTypes.h

Added #def SCN_ENABLE_METAL
Declaration
From
@property(readonly) SCNMatrix4 SCNMatrix4Value
To
@property(nonatomic, readonly) SCNMatrix4 SCNMatrix4Value

Declaration
From
@property(readonly) SCNVector3 SCNVector3Value
To
@property(nonatomic, readonly) SCNVector3 SCNVector3Value

Declaration
From
@property(readonly) SCNVector4 SCNVector4Value
To
@property(nonatomic, readonly) SCNVector4 SCNVector4Value

SCNAction.h

Removed SCNAction(SCNActions)
Declaration
From
+ (SCNAction *)group:(NSArray *)actions
To
+ (SCNAction * _Nonnull)group:(NSArray<SCNAction *> * _Nonnull)actions

Declaration
From
+ (SCNAction *)sequence:(NSArray *)actions
To
+ (SCNAction * _Nonnull)sequence:(NSArray<SCNAction *> * _Nonnull)actions

SCNAnimation.h

Declaration
From
@property(nonatomic, retain) NSArray *animationEvents
To
@property(nonatomic, copy, nullable) NSArray<SCNAnimationEvent *> *animationEvents

SCNAudioSource.h (Added)

SCNConstraint.h

SCNGeometry.h

Declaration
From
- (NSArray *)geometrySourcesForSemantic:(NSString *)semantic
To
- (NSArray<SCNGeometrySource *> * _Nonnull)geometrySourcesForSemantic:(NSString * _Nonnull)semantic

Declaration
From
+ (instancetype)geometryWithSources:(NSArray *)sources elements:(NSArray *)elements
To
+ (instancetype _Nonnull)geometryWithSources:(NSArray<SCNGeometrySource *> * _Nonnull)sources elements:(NSArray<SCNGeometryElement *> * _Nonnull)elements

Declaration
From
@property(nonatomic, copy) NSArray *levelsOfDetail
To
@property(nonatomic, copy, nullable) NSArray<SCNLevelOfDetail *> *levelsOfDetail

Declaration
From
@property(nonatomic, copy) NSArray *materials
To
@property(nonatomic, copy, nonnull) NSArray<SCNMaterial *> *materials

SCNMaterial.h

SCNMaterialProperty.h

SCNMorpher.h

Declaration
From
@property(nonatomic, copy) NSArray *targets
To
@property(nonatomic, copy, nonnull) NSArray<SCNGeometry *> *targets

SCNNode.h

Declaration
From
@property(nonatomic, readonly) NSArray *childNodes
To
@property(nonatomic, readonly, nonnull) NSArray<SCNNode *> *childNodes

Declaration
From
- (NSArray *)childNodesPassingTest:(BOOL (^)(SCNNode *child, BOOL *stop))predicate
To
- (NSArray<SCNNode *> * _Nonnull)childNodesPassingTest:(BOOL (^ _Nonnull)(SCNNode * _Nonnull child, BOOL * _Nonnull stop))predicate

Declaration
From
- (id)clone
To
- (instancetype _Nonnull)clone

Declaration
From
@property(copy) NSArray *constraints
To
@property(copy, nullable) NSArray<SCNConstraint *> *constraints

Declaration
From
@property(nonatomic, copy) NSArray *filters
To
@property(nonatomic, copy, nullable) NSArray<CIFilter *> *filters

Declaration
From
- (SCNNode *)flattenedClone
To
- (instancetype _Nonnull)flattenedClone

Declaration
From
- (NSArray *)hitTestWithSegmentFromPoint:(SCNVector3)pointA toPoint:(SCNVector3)pointB options:(NSDictionary *)options
To
- (NSArray<SCNHitTestResult *> * _Nonnull)hitTestWithSegmentFromPoint:(SCNVector3)pointA toPoint:(SCNVector3)pointB options:(NSDictionary<NSString *,id> * _Nullable)options

Declaration
From
- (SCNNode *)presentationNode
To
@property(nonatomic, readonly, nonnull) SCNNode *presentationNode

Declaration
From
- (void)renderNode:(SCNNode *)node renderer:(SCNRenderer *)renderer arguments:(NSDictionary *)arguments
To
- (void)renderNode:(SCNNode * _Nonnull)node renderer:(SCNRenderer * _Nonnull)renderer arguments:(NSDictionary<NSString *,NSValue *> * _Nonnull)arguments

SCNParticleSystem.h

Declaration
From
@property(readonly) NSArray *particleSystems
To
@property(readonly, nullable) NSArray<SCNParticleSystem *> *particleSystems

Declaration
From
- (void)addModifierForProperties:(NSArray *)properties atStage:(SCNParticleModifierStage)stage withBlock:(SCNParticleModifierBlock)block
To
- (void)addModifierForProperties:(NSArray<NSString *> * _Nonnull)properties atStage:(SCNParticleModifierStage)stage withBlock:(SCNParticleModifierBlock _Nonnull)block

Declaration
From
@property(nonatomic, copy) NSArray *colliderNodes
To
@property(nonatomic, copy, nullable) NSArray<SCNNode *> *colliderNodes

Declaration
From
- (void)handleEvent:(SCNParticleEvent)event forProperties:(NSArray *)properties withBlock:(SCNParticleEventBlock)block
To
- (void)handleEvent:(SCNParticleEvent)event forProperties:(NSArray<NSString *> * _Nonnull)properties withBlock:(SCNParticleEventBlock _Nonnull)block

Declaration
From
@property(nonatomic, copy) NSDictionary *propertyControllers
To
@property(nonatomic, copy, nullable) NSDictionary<NSString *,SCNParticlePropertyController *> *propertyControllers

Declaration
From
@property(readonly) NSArray *particleSystems
To
@property(readonly, nullable) NSArray<SCNParticleSystem *> *particleSystems

SCNPhysicsBehavior.h

Declaration
From
+ (instancetype)vehicleWithChassisBody:(SCNPhysicsBody *)chassisBody wheels:(NSArray *)wheels
To
+ (instancetype _Nonnull)vehicleWithChassisBody:(SCNPhysicsBody * _Nonnull)chassisBody wheels:(NSArray<SCNPhysicsVehicleWheel *> * _Nonnull)wheels

Declaration
From
@property(nonatomic, readonly) NSArray *wheels
To
@property(nonatomic, readonly, nonnull) NSArray<SCNPhysicsVehicleWheel *> *wheels

SCNPhysicsBody.h

Declaration
From
@property(nonatomic, assign) NSUInteger categoryBitMask
To
@property(nonatomic) NSUInteger categoryBitMask

Declaration
From
@property(nonatomic, assign) NSUInteger collisionBitMask
To
@property(nonatomic) NSUInteger collisionBitMask

SCNPhysicsShape.h

Declaration
From
+ (instancetype)shapeWithGeometry:(SCNGeometry *)geometry options:(NSDictionary *)options
To
+ (instancetype _Nonnull)shapeWithGeometry:(SCNGeometry * _Nonnull)geometry options:(NSDictionary<NSString *,id> * _Nullable)options

Declaration
From
+ (instancetype)shapeWithNode:(SCNNode *)node options:(NSDictionary *)options
To
+ (instancetype _Nonnull)shapeWithNode:(SCNNode * _Nonnull)node options:(NSDictionary<NSString *,id> * _Nullable)options

Declaration
From
+ (instancetype)shapeWithShapes:(NSArray *)shapes transforms:(NSArray *)transforms
To
+ (instancetype _Nonnull)shapeWithShapes:(NSArray<SCNPhysicsShape *> * _Nonnull)shapes transforms:(NSArray<NSValue *> * _Nullable)transforms

SCNPhysicsWorld.h

Declaration
From
- (NSArray *)allBehaviors
To
@property(nonatomic, readonly, nonnull) NSArray<SCNPhysicsBehavior *> *allBehaviors

Declaration
From
- (NSArray *)contactTestBetweenBody:(SCNPhysicsBody *)bodyA andBody:(SCNPhysicsBody *)bodyB options:(NSDictionary *)options
To
- (NSArray<SCNPhysicsContact *> * _Nonnull)contactTestBetweenBody:(SCNPhysicsBody * _Nonnull)bodyA andBody:(SCNPhysicsBody * _Nonnull)bodyB options:(NSDictionary<NSString *,id> * _Nullable)options

Declaration
From
- (NSArray *)contactTestWithBody:(SCNPhysicsBody *)body options:(NSDictionary *)options
To
- (NSArray<SCNPhysicsContact *> * _Nonnull)contactTestWithBody:(SCNPhysicsBody * _Nonnull)body options:(NSDictionary<NSString *,id> * _Nullable)options

Declaration
From
- (NSArray *)convexSweepTestWithShape:(SCNPhysicsShape *)shape fromTransform:(SCNMatrix4)from toTransform:(SCNMatrix4)to options:(NSDictionary *)options
To
- (NSArray<SCNPhysicsContact *> * _Nonnull)convexSweepTestWithShape:(SCNPhysicsShape * _Nonnull)shape fromTransform:(SCNMatrix4)from toTransform:(SCNMatrix4)to options:(NSDictionary<NSString *,id> * _Nullable)options

Declaration
From
- (NSArray *)rayTestWithSegmentFromPoint:(SCNVector3)origin toPoint:(SCNVector3)dest options:(NSDictionary *)options
To
- (NSArray<SCNHitTestResult *> * _Nonnull)rayTestWithSegmentFromPoint:(SCNVector3)origin toPoint:(SCNVector3)dest options:(NSDictionary<NSString *,id> * _Nullable)options

SCNReferenceNode.h (Added)

SCNRenderer.h

Deprecation
From--
ToiOS 9.0

Declaration
From
+ (instancetype)rendererWithContext:(void *)context options:(NSDictionary *)options
To
+ (instancetype _Nonnull)rendererWithContext:(EAGLContext * _Nonnull)context options:(NSDictionary * _Nullable)options

SCNScene.h

Declaration
From
+ (instancetype)sceneNamed:(NSString *)name inDirectory:(NSString *)directory options:(NSDictionary *)options
To
+ (instancetype _Nullable)sceneNamed:(NSString * _Nonnull)name inDirectory:(NSString * _Nullable)directory options:(NSDictionary<NSString *,id> * _Nullable)options

Declaration
From
+ (instancetype)sceneWithURL:(NSURL *)url options:(NSDictionary *)options error:(NSError **)error
To
+ (instancetype _Nullable)sceneWithURL:(NSURL * _Nonnull)url options:(NSDictionary<NSString *,id> * _Nullable)options error:(NSError * _Nullable * _Nullable)error

SCNSceneRenderer.h

Declaration
From
- (NSArray *)hitTest:(CGPoint)thePoint options:(NSDictionary *)options
To
- (NSArray<SCNHitTestResult *> * _Nonnull)hitTest:(CGPoint)point options:(NSDictionary<NSString *,id> * _Nullable)options

Declaration
From
- (void)renderer:(id<SCNSceneRenderer>)aRenderer didApplyAnimationsAtTime:(NSTimeInterval)time
To
- (void)renderer:(id<SCNSceneRenderer> _Nonnull)renderer didApplyAnimationsAtTime:(NSTimeInterval)time

Declaration
From
- (void)renderer:(id<SCNSceneRenderer>)aRenderer didRenderScene:(SCNScene *)scene atTime:(NSTimeInterval)time
To
- (void)renderer:(id<SCNSceneRenderer> _Nonnull)renderer didRenderScene:(SCNScene * _Nonnull)scene atTime:(NSTimeInterval)time

Declaration
From
- (void)renderer:(id<SCNSceneRenderer>)aRenderer didSimulatePhysicsAtTime:(NSTimeInterval)time
To
- (void)renderer:(id<SCNSceneRenderer> _Nonnull)renderer didSimulatePhysicsAtTime:(NSTimeInterval)time

Declaration
From
- (void)renderer:(id<SCNSceneRenderer>)aRenderer updateAtTime:(NSTimeInterval)time
To
- (void)renderer:(id<SCNSceneRenderer> _Nonnull)renderer updateAtTime:(NSTimeInterval)time

Declaration
From
- (void)renderer:(id<SCNSceneRenderer>)aRenderer willRenderScene:(SCNScene *)scene atTime:(NSTimeInterval)time
To
- (void)renderer:(id<SCNSceneRenderer> _Nonnull)renderer willRenderScene:(SCNScene * _Nonnull)scene atTime:(NSTimeInterval)time

SCNSceneSource.h

Declaration
From
- (NSArray *)entriesPassingTest:(BOOL (^)(id entry, NSString *identifier, BOOL *stop))predicate
To
- (NSArray<id> * _Nonnull)entriesPassingTest:(BOOL (^ _Nonnull)(id _Nonnull entry, NSString * _Nonnull identifier, BOOL * _Nonnull stop))predicate

Declaration
From
- (NSArray *)identifiersOfEntriesWithClass:(Class)entryClass
To
- (NSArray<NSString *> * _Nonnull)identifiersOfEntriesWithClass:(Class _Nonnull)entryClass

Declaration
From
- (id)initWithData:(NSData *)data options:(NSDictionary *)options
To
- (instancetype _Nullable)initWithData:(NSData * _Nonnull)data options:(NSDictionary<NSString *,id> * _Nullable)options

Declaration
From
- (id)initWithURL:(NSURL *)url options:(NSDictionary *)options
To
- (instancetype _Nullable)initWithURL:(NSURL * _Nonnull)url options:(NSDictionary<NSString *,id> * _Nullable)options

Declaration
From
+ (instancetype)sceneSourceWithData:(NSData *)data options:(NSDictionary *)options
To
+ (instancetype _Nullable)sceneSourceWithData:(NSData * _Nonnull)data options:(NSDictionary<NSString *,id> * _Nullable)options

Declaration
From
+ (instancetype)sceneSourceWithURL:(NSURL *)url options:(NSDictionary *)options
To
+ (instancetype _Nullable)sceneSourceWithURL:(NSURL * _Nonnull)url options:(NSDictionary<NSString *,id> * _Nullable)options

Declaration
From
- (SCNScene *)sceneWithOptions:(NSDictionary *)options error:(NSError **)error
To
- (SCNScene * _Nullable)sceneWithOptions:(NSDictionary<NSString *,id> * _Nullable)options error:(NSError * _Nullable * _Nullable)error

Declaration
From
- (SCNScene *)sceneWithOptions:(NSDictionary *)options statusHandler:(SCNSceneSourceStatusHandler)statusHandler
To
- (SCNScene * _Nullable)sceneWithOptions:(NSDictionary<NSString *,id> * _Nullable)options statusHandler:(SCNSceneSourceStatusHandler _Nullable)statusHandler

SCNShadable.h

Declaration
From
- (void)setSemantic:(NSString *)semantic forSymbol:(NSString *)symbol options:(NSDictionary *)options
To
- (void)setSemantic:(NSString * _Nullable)semantic forSymbol:(NSString * _Nonnull)symbol options:(NSDictionary<NSString *,id> * _Nullable)options

Declaration
From
@property(nonatomic, copy) NSDictionary *shaderModifiers
To
@property(nonatomic, copy, nullable) NSDictionary<NSString *,NSString *> *shaderModifiers

SCNSkinner.h

Declaration
From
@property(readonly, nonatomic) NSArray *boneInverseBindTransforms
To
@property(readonly, nonatomic, nullable) NSArray<NSValue *> *boneInverseBindTransforms

Declaration
From
@property(readonly, nonatomic) NSArray *bones
To
@property(readonly, nonatomic, nonnull) NSArray<SCNNode *> *bones

Declaration
From
+ (instancetype)skinnerWithBaseGeometry:(SCNGeometry *)baseGeometry bones:(NSArray *)bones boneInverseBindTransforms:(NSArray *)boneInverseBindTransforms boneWeights:(SCNGeometrySource *)boneWeights boneIndices:(SCNGeometrySource *)boneIndices
To
+ (instancetype _Nonnull)skinnerWithBaseGeometry:(SCNGeometry * _Nullable)baseGeometry bones:(NSArray<SCNNode *> * _Nonnull)bones boneInverseBindTransforms:(NSArray<NSValue *> * _Nullable)boneInverseBindTransforms boneWeights:(SCNGeometrySource * _Nonnull)boneWeights boneIndices:(SCNGeometrySource * _Nonnull)boneIndices

SCNTechnique.h

Declaration
From
@property(readonly) NSDictionary *dictionaryRepresentation
To
@property(readonly, nonnull) NSDictionary<NSString *,id> *dictionaryRepresentation

Declaration
From
+ (SCNTechnique *)techniqueBySequencingTechniques:(NSArray *)techniques
To
+ (SCNTechnique * _Nullable)techniqueBySequencingTechniques:(NSArray<SCNTechnique *> * _Nonnull)techniques

Declaration
From
+ (SCNTechnique *)techniqueWithDictionary:(NSDictionary *)dictionary
To
+ (SCNTechnique * _Nullable)techniqueWithDictionary:(NSDictionary<NSString *,id> * _Nonnull)dictionary

SCNTransaction.h

Modified +[SCNTransaction setAnimationTimingFunction:]
Declaration
From
+ (void)setAnimationTimingFunction:(CAMediaTimingFunction *)function
To
+ (void)setAnimationTimingFunction:(CAMediaTimingFunction * _Nullable)animationTimingFunction

Declaration
From
+ (void)setValue:(id)anObject forKey:(NSString *)key
To
+ (void)setValue:(id _Nullable)value forKey:(NSString * _Nonnull)key

SCNView.h

Declaration
From
- (id)initWithFrame:(CGRect)frame options:(NSDictionary *)options
To
- (instancetype _Nonnull)initWithFrame:(CGRect)frame options:(NSDictionary<NSString *,id> * _Nullable)options