From 412bd94ea473c7b175f94a190d66f4be3e92aaab Mon Sep 17 00:00:00 2001 From: simlay Date: Fri, 14 Aug 2020 12:26:16 -0700 Subject: [PATCH] Renamed NSString to NSStringRust to support Debug View Heirarchy in Xcode (#1631) * Renamed NSString to NSStringRust to support Debug View Heirarchy * Updated from comments * Update CHANGELOG.md --- CHANGELOG.md | 1 + src/platform_impl/ios/event_loop.rs | 5 +++-- src/platform_impl/ios/ffi.rs | 7 +++++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c109c9c0..c875fe41 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ # Unreleased +- On iOS, fixed support for the "Debug View Heirarchy" feature in Xcode. - On all platforms, `available_monitors` and `primary_monitor` are now on `EventLoopWindowTarget` rather than `EventLoop` to list monitors event in the event loop. - On Unix, X11 and Wayland are now optional features (enabled by default) - On X11, fix deadlock when calling `set_fullscreen_inner`. diff --git a/src/platform_impl/ios/event_loop.rs b/src/platform_impl/ios/event_loop.rs index 2e7c64d2..9536e942 100644 --- a/src/platform_impl/ios/event_loop.rs +++ b/src/platform_impl/ios/event_loop.rs @@ -24,7 +24,8 @@ use crate::platform_impl::platform::{ CFRunLoopActivity, CFRunLoopAddObserver, CFRunLoopAddSource, CFRunLoopGetMain, CFRunLoopObserverCreate, CFRunLoopObserverRef, CFRunLoopSourceContext, CFRunLoopSourceCreate, CFRunLoopSourceInvalidate, CFRunLoopSourceRef, - CFRunLoopSourceSignal, CFRunLoopWakeUp, NSString, UIApplicationMain, UIUserInterfaceIdiom, + CFRunLoopSourceSignal, CFRunLoopWakeUp, NSStringRust, UIApplicationMain, + UIUserInterfaceIdiom, }, monitor, view, MonitorHandle, }; @@ -117,7 +118,7 @@ impl EventLoop { 0, ptr::null(), nil, - NSString::alloc(nil).init_str("AppDelegate"), + NSStringRust::alloc(nil).init_str("AppDelegate"), ); unreachable!() } diff --git a/src/platform_impl/ios/ffi.rs b/src/platform_impl/ios/ffi.rs index 1c464b06..071b5867 100644 --- a/src/platform_impl/ios/ffi.rs +++ b/src/platform_impl/ios/ffi.rs @@ -359,7 +359,10 @@ pub struct CFRunLoopSourceContext { pub perform: Option, } -pub trait NSString: Sized { +// This is named NSStringRust rather than NSString because the "Debug View Heirarchy" feature of +// Xcode requires a non-ambiguous reference to NSString for unclear reasons. This makes Xcode happy +// so please test if you change the name back to NSString. +pub trait NSStringRust: Sized { unsafe fn alloc(_: Self) -> id { msg_send![class!(NSString), alloc] } @@ -370,7 +373,7 @@ pub trait NSString: Sized { unsafe fn UTF8String(self) -> *const c_char; } -impl NSString for id { +impl NSStringRust for id { unsafe fn initWithUTF8String_(self, c_string: *const c_char) -> id { msg_send![self, initWithUTF8String: c_string as id] }