Я изучаю документацию Apple и хотел бы понять, как классы, такие как UIApplication, делают то, что они делают под капотом, однако, если вы укажете команду «UIApplication», Xcode показывает только свойства и сигнатуры свойств UIApplication, но не фактический код внутри методов , Я полагал, что это будет ценной информацией, чтобы знать, можем ли мы видеть, что происходит внутри предлагаемых классов Apple, но почему это не доступно нам для ознакомления или просмотра?Почему в документации 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 }
}
Я голосую, чтобы закрыть этот вопрос не по теме, потому что единственным источником, который мог бы ответить на этот вопрос, является производитель программного обеспечения (то есть Apple), и даже тогда их ответ будет субъективным. – dasblinkenlight
@ dasblinkenlight хорошо, как можно узнать, правильно ли они используют методы или свойства? Имеет ли мой вопрос к вам смысл? Я просто пытаюсь быть уверенным, что понимаю, правильно ли я использовал классы Apple. Когда вы говорите субъективно, что способ говорить о программировании - это скорее искусство с бесконечными ответами? –
@ dasblinkenlight любой может ответить на этот вопрос, нет ничего конкретного Apple или субъективного об этом. – Lope