[swift-users] Customizing my custom type's appearance in the debugger
Enrico Granata
egranata at apple.com
Wed Jun 29 12:16:40 CDT 2016
Tim,
the Xcode variables view is controlled by a different mechanism than the playgrounds/po - there is a reference for that mechanism at http://lldb.llvm.org/varformats.html <http://lldb.llvm.org/varformats.html>
The gist of it is that you're going to want to make a synthetic child provider that returns no child elements for your object - that will be what the variables view picks up
> On Jun 26, 2016, at 9:41 PM, Dmitri Gribenko <gribozavr at gmail.com> wrote:
>
> On Sun, Jun 26, 2016 at 5:03 PM, Tim Vermeulen <tvermeulen at me.com> wrote:
>> I already did that, sorry for not providing any code. Take this as an
>> example:
>>
>> public struct Wrapper<Element> {
>>
>> private var elements: [Element]
>>
>> public init<S: Sequence where S.Iterator.Element == Element>(_ sequence:
>> S) {
>> elements = [Element](sequence)
>> }
>>
>> }
>>
>> extension Wrapper: Collection {
>>
>> public var startIndex: Int { return elements.startIndex }
>> public var endIndex: Int { return elements.endIndex }
>>
>> public func index(after index: Int) -> Int {
>> return index + 1
>> }
>>
>> public subscript(position: Int) -> Element {
>> return elements[position]
>> }
>>
>> }
>>
>> extension Wrapper: CustomReflectable {
>>
>> public var customMirror: Mirror {
>> return Mirror(self, unlabeledChildren: self, displayStyle:
>> .collection)
>> }
>>
>> }
>>
>> If I debug an instance of this Wrapper type, then Xcode’s Variables View
>> will show
>>
>> ▿ wrapper
>> ▿ elements = x values
>> [0] = 0
>> [1] = …
>
> I see. I'm not sure there's a way to hide anything from Xcode's variables view.
>
> +Enrico.
>
> Dmitri
>
> --
> main(i,j){for(i=2;;i++){for(j=2;j<i;j++){if(!(i%j)){j=0;break;}}if
> (j){printf("%d\n",i);}}} /*Dmitri Gribenko <gribozavr at gmail.com>*/
Thanks,
- Enrico
📩 egranata@.com ☎️ 27683
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-users/attachments/20160629/863a863c/attachment.html>
More information about the swift-users
mailing list