I hereby claim:
- I am Crufty on github.
- I am davetay (https://keybase.io/davetay) on keybase.
- I have a public key whose fingerprint is A42F 51F4 1073 9D54 C1E2 155C 5C92 846E 836B E10E
To claim this, I am signing this object:
| hdiutil create -o /tmp/Catalina -size 8000m -layout SPUD -fs HFS+J | |
| hdiutil attach /tmp/Catalina.dmg -noverify -mountpoint /Volumes/install_build | |
| sudo /Applications/Install\ macOS\ 10.15\ Beta.app/Contents/Resources/createins$ | |
| hdiutil convert /tmp/Catalina.dmg -format UDTO -o ~/Downloads/Catalina | |
| mv ~/Downloads/Catalina.cdr ~/Downloads/Catalina.iso |
| // An experiment with isolating the key path writing mechanism | |
| public struct Changeable<T> { | |
| public let value: T | |
| public let hasChanged: Bool | |
| public static func write<U: Equatable>(_ keyPath: WritableKeyPath<T, U>, _ value: U) -> (inout T) -> Changeable<T> { | |
| return { whole in | |
| let changed = whole[keyPath: keyPath] != value | |
| if changed { | |
| whole[keyPath: keyPath] = value |
I hereby claim:
To claim this, I am signing this object:
| COLOURS VIDUO | |
| BLK/BLK PCB/PCB | |
| X LITE SHORT |
| import com.snowtide.pdf.OutputTarget; | |
| import com.snowtide.pdf.PDFTextStream; | |
| public class ExtractTextAllPages { | |
| public static void main (String[] args) | |
| { | |
| String pdfFilePath = args[0]; | |
| PDFTextStream pdfts = new PDFTextStream(pdfFilePath); | |
| StringBuilder text = new StringBuilder(1024); | |
| pdfts.pipe(new OutputTarget(text)); |
| #!/bin/bash | |
| # Fetch every video | |
| DST=~/Public/WWDC/2014 | |
| if [ ! -d "${DST}" ] | |
| then | |
| exit 1 | |
| fi | |
| cd "${DST}" | |
| date >> curl.log |
| id mockTaskVC = [OCMockObject partialMockForObject:taskVC]; | |
| [[mockTaskVC expect] showToastMessage:@"Task Started" completion:OCMOCK_ANY]; | |
| [[[mockTaskVC reject] ignoringNonObjectArgs] displayAlertWithMsg:OCMOCK_ANY title:OCMOCK_ANY tag:-1]; | |
| [taskVC toggleStartPauseResume:nil]; | |
| // Idle the run loop until the background task is finished | |
| [self.client waitForAllOperations]; | |
| NSTimeInterval delay = 2.0; |
| // Truncated conversion warning | |
| GCC_WARN_64_TO_32_BIT_CONVERSION = NO | |
| GCC_WARN_64_TO_32_BIT_CONVERSION[arch=*64] = YES | |
| // This works but is not honoured when building test target for some reason | |
| // OTHER_CFLAGS = -fsingle-precision-constant | |
| OTHER_CFLAGS[config=Debug] = -DDEBUG=1 -fsingle-precision-constant | |
| OTHER_CFLAGS[config=Debug][arch=*64] = -DDEBUG=1 | |
| OTHER_CFLAGS[config=Ad Hoc] = -DNS_BLOCK_ASSERTIONS=1 -fsingle-precision-constant | |
| OTHER_CFLAGS[config=Ad Hoc][arch=*64] = -DNS_BLOCK_ASSERTIONS=1 |
| [ | |
| { | |
| "description": "Mad Magazine", | |
| "title": { | |
| "highlight": true, | |
| "text": "1943" | |
| } | |
| } | |
| ] |
| Summary: | |
| When a view is removed from it's superview and subsequently dealloc'd, if it sets it's layer.contents = nil this will cause all subview layers to be dealloc'd even though those subviews retain a pointer to their layer. Any attempt to send messages to those subviews that references the view's layer (now a zombie) will crash the app. | |
| The attached example is of course contrived, however the real world problem caused by this is when using CATiledLayer which has async drawing. It is a requirement to set layer.contents to nil in the view dealloc in order to block until any remaining drawing blocks are completed.* | |
| *Yes I know that if dealloc is being called how can there still be active drawing blocks? Because of rdar://8640386 that's how | |
| Steps to Reproduce: | |
| 1. Add a view to the window (view1) | |
| 2. Add a subview (view2) to view1 and retain it |