Automatic Reference Counting (ARC) is a memory management feature of the Clangcompiler providing automatic reference counting for the Objective-C and Swiftprogramming languages. At compile time, it inserts into the object codemessagesretain
and release
[1][2] which increase and decrease the reference count at run time, marking for deallocation those objects when the number of references to them reaches zero.
ARC differs from tracing garbage collection in that there is no background process that deallocates the objects asynchronously at runtime.[3] Unlike tracing garbage collection, ARC does not handle reference cycles automatically. This means that as long as there are 'strong' references to an object, it will not be deallocated. Strong cross-references can accordingly create deadlocks and memory leaks. It is up to the developer to break cycles by using weak references.[4]
Tangent to last line, arc, or polyline. Immediately after you create a line or an arc, you can start an arc that is tangent at an endpoint by starting the ARC command and pressing ENTER at the Specify Start Point prompt. You need to specify only the endpoint of the arc. End point of arc Specify a point (1). Switching to ArcGIS Pro from ArcMap is an invaluable resource for those looking to migrate from ArcMap to ArcGIS Pro. Rather than teach Pro from the start, this book focuses on the difference between Pro and ArcMap for a more rapid adjustment to common workflows.
Apple Inc. deploys ARC in their operating systems, such as macOS (OS X) and iOS. Limited support (ARCLite)[5] has been available since Mac OS X Snow Leopard and iOS 4, with complete support following in Mac OS XLion and iOS 5.[6] Garbage collection was declared deprecated in OS X Mountain Lion, in favor of ARC, and removed from the Objective-C runtime library in macOS Sierra.[7][8]
Objective-C[edit]
The following rules are enforced by the compiler when ARC is turned on:
retain
,release
,retainCount
,autorelease
ordealloc
cannot be sent to objects. Instead, the compiler inserts these messages at compile time automatically, including[super dealloc]
whendealloc
is overridden.[9]- Programs cannot cast directly between
id
andvoid *
.[9] This includes casting between Foundation objects and Core Foundation objects. Programs must use special casts, or calls to special functions, to tell the compiler more information about an object's lifetime. - An autorelease pool can be used to allocate objects temporarily and retain them in memory until the pool is 'drained'. Without ARC, an
NSAutoreleasePool
object can be created for this purpose. ARC uses@autoreleasepool
blocks instead, which encapsulate the allocation of the temporary objects and deallocates them when the end of the block is reached.[9] - Programs cannot call the functions
NSAllocateObject
andNSDeallocateObject
[9] - Programs cannot use object pointers in C structures (
struct
s)[9] - Programs cannot use memory zones (
NSZone
)[9] - To properly cooperate with non-ARC code, programs must use no method or declared property (unless explicitly choosing a different getter) that starts with
new
.[9]
Property declarations[edit]
ARC introduces some new property declaration attributes, some of which replace the old attributes.
Without ARC | With ARC | With ARCLite [Note 1] |
---|---|---|
retain | strong | |
assign (for object types) | weak | unsafe_unretained |
copy |
- ^ARCLite is ARC but without zeroing weak references (used when deploying to a less-capable operating environment than ARC requires).
Zeroing weak references[edit]
Zeroing weak references is a feature in Objective-C ARC that automatically clears (sets to nil
) weak-reference local variables, instance variables, and declared properties immediately before the object being pointed to starts deallocating. This ensures that the pointer goes to either a valid object or nil
, and avoids dangling pointers. Prior to the introduction of this feature, 'weak references' referred to references that were not retaining, but were not set to nil
when the object they pointed to was deallocated (equivalent to unsafe_unretained
in ARC), thus possibly leading to a dangling pointer. The programmer typically had to ensure that all possible weak references to an object were set to nil manually when it was being deallocated. Zeroing weak references obviates the need to do this.
Zeroing weak references are indicated by using the declared property attributeweak
or by using the variable attribute __weak
.
Zeroing weak references are only available in Mac OS X Lion (10.7) or later and iOS 5 or later, because they require additional support from the Objective-C runtime. However, some OS X classes do not currently support weak references.[9] Code that uses ARC but needs to support versions of the OS older than those above cannot use zeroing weak references, and therefore must use unsafe_unretained
weak references. There exists a third-party library called PLWeakCompatibility [1] that allows one to use zeroing weak references even on these older OS versions.
Need for Speed Carbon What starts in the city is settled in the canyons as Need for Speed Carbon immerses you in the world's most dangerous adrenaline-filled street racing. Need for Speed: Carbon is a 2006 racing video game, and the tenth installment in the Need for Speed series. Developed by EA Canada, Rovio Mobile and EA Black Box, and published by Electronic Arts, it was released on October 30, 2006, for PlayStation 3, Xbox 360, Wii, PlayStation 2, Xbox, GameCube, Windows and Mac OS X and in 2008 for arcades. Need for Speed Carbon delivers the next generation of customization giving you the power to design and tweak your crew's cars in every way using the ground-breaking new Autosculpt technology. Represent your car class, your crew, and your turf in Need for. It is crazy to think that Need For Speed: Carbon was the 10th game in the series and it is still going strong today. Speaking of today, we are taking a look at the PC version of this hit game which is regarded as a really solid entry in the Need For Speed franchise! Find helpful customer reviews and review ratings for Need for Speed: Carbon - Mac at Amazon.com. Read honest and unbiased product reviews from our users. Need for speed carbon mac compatibility.
Converting to[edit]
Xcode 4.2 or later provides a way to convert code to ARC.[10] As of Xcode 4.5, it is found by choosing Edit > Refactor > Convert to Objective-C ARC.. Although Xcode will automatically convert most code, some code may have to be converted manually. Xcode will inform the developer when more complex use cases arise, such as when a variable is declared inside an autorelease pool and used outside it or when two objects need to be toll-free bridged with special casts.
Swift[edit]
In Swift, references to objects are strong, unless they are declared weak
or unowned
. Swift requires explicit handling of nil with the Optional type: a value type that can either have a value or be nil. An Optional type must be handled by 'unwrapping' it with a conditional statement, allowing safe usage of the value, if present. Conversely, any non-Optional type will always have a value and cannot be nil.
Arc Forma
Accordingly, a strong reference to an object cannot be of type Optional, as the object will be kept in the heap until the reference itself is deallocated. A weak reference is of type Optional, as the object can be deallocated and the reference be set to nil. Unowned references fall in-between; they are neither strong nor of type Optional. Instead, the compiler assumes that the object to which an unowned reference points is not deallocated as long the reference itself remains allocated. This is typically used in situations where the target object itself holds a reference to the object that holds the unowned reference.
Swift also differs from Objective-C in its usage and encouragement of value types instead of reference types. Most types in the Swift standard library are value types and they are copied by value, whereas classes and closures are reference types and passed by reference. Because value types are copied when passed around, they are deallocated automatically with the reference that created them.[11]
Arc Machine For Horses
See also[edit]
References[edit]
- ^Siracusa, John (July 20, 2011). 'Mac OS X 10.7 Lion: the Ars Technica review'. Ars Technica. Ars Technica. At section 'Automatic Reference Counting'. Retrieved November 17, 2016.
- ^Kochan, Stephen G. (2011). Programming in Objective-C (4th ed.). Boston, Mass.: Addison-Wesley. pp. 408. ISBN978-0321811905.
- ^Hoffman, Kevin (2012). Sams teach yourself Mac OS X Lion app development in 24 hours. Indianapolis, Ind.: Sams. pp. 73. ISBN9780672335815.
- ^'General'. Automatic Reference Counting. LLVM.org. Retrieved 15 August 2012.
- ^'Objective-C Feature Availability Index'. Apple, Inc. Retrieved 2013-10-14.
- ^Sakamoto, Kazuki (2012). Pro Multithreading and Memory Management for iOS and OS X with ARC, Grand Central Dispatch and Blocks. Apress. pp. xii. ISBN978-1430241164.
- ^Siracusa, John (July 25, 2012). 'OS X 10.8 Mountain Lion: the Ars Technica review'. Ars Technica. At section 'Objective-C enhancements'. Retrieved November 17, 2016.
- ^'Xcode 8 Release Notes'. Apple Developer. October 27, 2016. Archived from the original on March 19, 2017. Retrieved March 19, 2017.
- ^ abcdefgh'Transitioning to ARC Release Notes'. Retrieved 14 September 2012.
- ^'What's New in Xcode 4.2 – Automatic Reference Counting'. Apple Inc. Archived from the original on 20 August 2012. Retrieved 3 October 2012.
- ^'Value and Reference Types'. Apple Developer. August 15, 2014. Retrieved November 17, 2016.
External links[edit]
- 'Automatic Reference Counting' in The Swift Programming Language
To run ArcGIS 10.x on an Apple Macintosh computer, the Mac must be set up to run Windows. There are severals ways to do this, but they require one of two installation options.
Option One: Create a dual-boot setup on your Mac, which allows you to boot into either Mac OS or Windows OS. The typical method for this is to use the free software BootCamp. Ram for mac computer.
Arcgis For Mac
The following Mac models will support the 64-bit version of Windows 10 Home or Pro edition installed with Boot Camp:
- MacBook Pro (2012 and later)
- MacBook Air (2012 and later)
- MacBook (2015 and later)
- iMac Pro (2017)
- iMac (2012 and later)*
- Mac mini (2012 and later)
- Mac mini Server (Late 2012)
- Mac Pro (Late 2013)
You will need enough free disk space to create a Boot Camp disk partition with a minimum size of 64GB. 128GB is recommended for the best experience.
Using BootCamp: http://www.apple.com/support/bootcamp/
Option Two: Create a virtual machine on your Mac, which allows you to run an installation of Windows OS in parallel with your existing Mac OS, and to switch from one to the other without booting into either one separately. Typical choices for the virtualization option are the licensed software Parallels or VMware. This option requires more resources (RAM & CPU) to run both OSes at the same time, as well as plenty of hard drive space (see the virtual machine options below for details).
Using Parallels: http://www.parallels.com/products/desktop/
Using VMware: http://www.vmware.com/products/fusion/
The ESRI GeoNet Forum has more information on these options (search for 'mac'). When configuring Windows with any of these options, it is important the configuration meets the minimum system requirements for installing ArcGIS.
Arc Xt Software For Mac
Keep in mind that ESRI does NOT support ArcGIS for Mac, and that you can only use ArcGIS within one of the Windows OS installation options described above.
Mac OS X 10.7-10.11 compatibilityNote about Mac OS X 10.7-10.11 compatibilityRecent versions of Mac OS X (since 10.7 Lion in 2011) no longer support PowerPC-based Mac applications. For ScanFont and BitFonter, we have provided a workaround by packaging the Windows application in a WINE wrapper that allows it to run on Mac OS X. This affected a number of applications available from Fontlab Ltd.: some older FontLab applications do not work on 10.7 or later operating systems.