我正在探索 Apple 的文档,并想了解 UIApplication 之类的类如何在后台执行它们的操作,但是如果您单击“UIApplication”命令,Xcode 仅显示 UIApplication 的属性和方法签名,而不显示方法中的实际代码。我认为这将是有价值的信息,可以了解我们是否可以看到 Apple 提供的课程内部发生了什么,但为什么我们不能知道或看到它?
例如,如果您命令单击 UIApplication,则会显示以下内容:
public class UIApplication : UIResponder {
public class func sharedApplication() -> UIApplication
unowned(unsafe) public var delegate: UIApplicationDelegate?
public func beginIgnoringInteractionEvents() // nested. set should be set during animations & transitions to ignore touch and other events
public func endIgnoringInteractionEvents()
public func isIgnoringInteractionEvents() -> Bool // returns YES if we are at least one deep in ignoring events
public var idleTimerDisabled: Bool // default is NO
public func openURL(url: NSURL) -> Bool
@available(iOS 3.0, *)
public func canOpenURL(url: NSURL) -> Bool
public func sendEvent(event: UIEvent)
public var keyWindow: UIWindow? { get }
public var windows: [UIWindow] { get }
public func sendAction(action: Selector, to target: AnyObject?, from sender: AnyObject?, forEvent event: UIEvent?) -> Bool
public var networkActivityIndicatorVisible: Bool // showing network spinning gear in status bar. default is NO
// default is UIStatusBarStyleDefault
// The system only calls this method if the application delegate has not
// implemented the delegate equivalent. It returns the orientations specified by
// the application's info.plist. If no supported interface orientations were
// specified it will return UIInterfaceOrientationMaskAll on an iPad and
// UIInterfaceOrientationMaskAllButUpsideDown on a phone. The return value
// should be one of the UIInterfaceOrientationMask values which indicates the
// orientations supported by this application.
@available(iOS 6.0, *)
public func supportedInterfaceOrientationsForWindow(window: UIWindow?) -> UIInterfaceOrientationMask
public var statusBarOrientationAnimationDuration: NSTimeInterval { get } // Returns the animation duration for the status bar during a 90 degree orientation change. It should be doubled for a 180 degree orientation change.
public var statusBarFrame: CGRect { get } // returns CGRectZero if the status bar is hidden
public var applicationIconBadgeNumber: Int // set to 0 to hide. default is 0. In iOS 8.0 and later, your application must register for user notifications using -[UIApplication registerUserNotificationSettings:] before being able to set the icon badge.
@available(iOS 3.0, *)
public var applicationSupportsShakeToEdit: Bool
@available(iOS 4.0, *)
public var applicationState: UIApplicationState { get }
@available(iOS 4.0, *)
public var backgroundTimeRemaining: NSTimeInterval { get }
@available(iOS 4.0, *)
public func beginBackgroundTaskWithExpirationHandler(handler: (() -> Void)?) -> UIBackgroundTaskIdentifier
@available(iOS 7.0, *)
public func beginBackgroundTaskWithName(taskName: String?, expirationHandler handler: (() -> Void)?) -> UIBackgroundTaskIdentifier
@available(iOS 4.0, *)
public func endBackgroundTask(identifier: UIBackgroundTaskIdentifier)
/*! The system guarantees that it will not wake up your application for a background fetch more
frequently than the interval provided. Set to UIApplicationBackgroundFetchIntervalMinimum to be
woken as frequently as the system desires, or to UIApplicationBackgroundFetchIntervalNever (the
default) to never be woken for a background fetch.
This setter will have no effect unless your application has the "fetch"
UIBackgroundMode. See the UIApplicationDelegate method
`application:performFetchWithCompletionHandler:` for more. */
@available(iOS 7.0, *)
public func setMinimumBackgroundFetchInterval(minimumBackgroundFetchInterval: NSTimeInterval)
/*! When background refresh is available for an application, it may launched or resumed in the background to handle significant
location changes, remote notifications, background fetches, etc. Observe UIApplicationBackgroundRefreshStatusDidChangeNotification to
be notified of changes. */
@available(iOS 7.0, *)
public var backgroundRefreshStatus: UIBackgroundRefreshStatus { get }
@available(iOS 4.0, *)
public var protectedDataAvailable: Bool { get }
@available(iOS 5.0, *)
public var userInterfaceLayoutDirection: UIUserInterfaceLayoutDirection { get }
// Return the size category
@available(iOS 7.0, *)
public var preferredContentSizeCategory: String { get }
}