답변
컴파일러를 전환 할 수 있지만 생각했던대로 작동하지 않습니다 (지금 시도했습니다). 이 새로운 구문을 사용하기위한 컴파일 SDK에 대한 몇 가지 요구 사항이 있습니다 (예 : 이전 iOS 버전에서는 작동하지만 iOS 6.0 SDK로 컴파일해야 함). 나는 그들이 지금 여기에서 토론 할 수 있다고 생각하지 않지만, "Modern Objective-C"WWDC 2012 비디오에서 자세히 다루어집니다.
기본적으로, 당신은 구문을해야하지만 라이브러리가 응답하는 방법을 알 수 없습니다.
다른 이론은 그냥 ^^ 바로 그것을하지 않았다 ...하지만이있다;
결국, 에이 없어서 5.x 앱에 배포하려면 4.3을 사용해야합니다. 그래서 내 제안은 단지 업그레이 드입니다, 거기에 진짜로 단점 (당신이 곧 애플 리케이션을 배포하지 않는 한,하지만 그 경우에는 거의 모든 일을 끝났다고 가정 이후 모든 것을 변환하는 번거 로움 것입니다).
EDIT (2 개월 후 현재 iOS 6 공개). 범주를 사용하여 새로운 목표 인 SDK 리터럴 구문에 대한 SDK 요구 사항을 해결할 수 있습니다. NSArray
및 NSDictionary
에 - (id)objectAtIndexedSubscript:(NSUInteger)idx
및 - (id)objectForKeyedSubscript:(id)key
의 카테고리를 각각 추가하면 objectAtIndex:
과 objectForKey:
(이는 iOS 6에서하는 것과 동일 함)을 반환합니다. NSMutableArray
및 NSMutableDictionary
에 대해서도 객체가없는 경우 객체를 추가하고 존재하는 경우 객체를 단순히 추가하는 - (void)setObject:(id)obj atIndexedSubscript:(NSUInteger)index
및 - (void)setObject:(id)obj atIndexedSubscript:(NSUInteger)index
의 범주 메서드를 각각 추가하십시오.
하나의 캐치 : 및 NO
의 정의가 iOS 6에서 부울 리터럴 NSNumber
에 맞게 변경되었습니다. 그래서 다음을 수행해야합니다
#if __has_feature(objc_bool)
#undef YES //Before it was (BOOL)1
#undef NO //Before it was (BOOL)0
#define YES __objc_yes
#define NO __objc_no
#endif
이유는 새 구문에 이미 오류입니다 @(BOOL)1
에 해결하는 것이다 @(...)
구문 (박스 표현)하고 기존 정의에 대한 정의를 가지고 있다는 것입니다.
비디오는 공개되어 있습니다. 그 내용을 논의하지 않을 이유가없는 것 같습니다. 새로운 구문 자체도 public입니다 : http://clang.llvm.org/docs/ObjectiveCLiterals.html, 그래서 당신은 아마도 "Foundation 객체의 현재 버전은'objectAtIndexedSubscript :를 구현하지 않습니다. 행동 양식". –
@JoshCaswell 동영상을 가져 오려면 로그인해야하나요? – borrrden
예, 무료 계정으로도 충분하지만 실제적인 장애는 아닙니다. 그러나 귀하의 NDA 사본에 귀하의 "서명"이 있습니다. 나는 아무것도 밀지 않으려 고하지 않습니다. 그것을 시도해 주셔서 감사합니다, BTW! –
- 1. LLVM GCC 4.2 Xcode 4.0을 업그레이드 한 후 오류가 발생했습니다
- 2. 현재 Xcode 4.3에서 사용할 수있는 D 플러그인이 있습니까?
- 3. VS2008에서 .NET Framework 4.0을 사용할 수 있습니까?
- 4. XCode 4.3에서 직접 종속성은 어디에 있습니까?
- 5. Xcode 4.3에서 getline c 함수의 실현은 어디에서 할 수 있습니까?
- 6. coredata가 xcode 4.3에서 작동하지 않습니까?
- 7. Xcode 4.3에서 AppDelegate를 어떻게 연결합니까?
- 8. Xcode LLVM 3.1 및 GCC_OPTIMIZATION_LEVEL
- 9. Entity Framework 4.3에서 RIA 서비스를 사용할 수 있습니까?
- 10. Xcode 4.2에서 사용할 수있는 LLVM 및 Clang의 버전은 무엇입니까?
- 11. Xcode 4.3에서 UIViewController 하위 클래스 추가하기
- 12. XCode 4.3에서 isEditable, isSelectable을 구현할 위치는 어디입니까?
- 13. Visual Studio 2008에서 C# 4.0을 사용할 수 있습니까?
- 14. visual studio 2008에서 silverlight 4.0을 사용할 수 있습니까?
- 15. VS2008/ASP.NET 3.5 응용 프로그램에서 C# 4.0을 사용할 수 있습니까?
- 16. .NET 4.0에 의존하지 않고 EF 4.0을 사용할 수 있습니까?
- 17. Visual Studio 솔루션을 업데이트하여 WPF 4.0을 사용할 수 있습니까?
- 18. msbuild 4.0을 사용하여 dotnet 3.5를 대상으로 사용할 수 있습니까?
- 19. Xcode LLVM 컴파일러를 사용하여 Haskell을 C 라이브러리로 컴파일하고 사용할 수 있습니까?
- 20. Xcode 4.3에서 앱 스토어 배포를위한 번들링 앱
- 21. iphone 용 xcode 4.3에서 TBXML 가져 오기
- 22. iphone 프로젝트 - xcode 4.3에서 복사하고 이름 바꾸기
- 23. Xcode 4.3에서 분할 버튼을 구현하는 방법은 무엇입니까?
- 24. Xcode 4.3에서 XIB로 3 개의 파일을 생성하는 옵션이 있습니까?
- 25. XCode 3에서 MacRuby를 사용할 수 있습니까?
- 26. Xcode 4.1.1은 iOS 5에서 사용할 수 있습니까?
- 27. MonoMac에서 Xcode Instruments를 사용할 수 있습니까
- 28. Apple llvm 4.1 컴파일러 옵션을 xcode 4.5에 표시 할 수 없습니다. llvm gcc 4.2
- 29. XCode 컴파일러 Apple LLVM 3.1 vs LLVM GCC 4.2
- 30. Xcode 4.0을 사용하여 유니버설 바이너리 만들기
적어도 두 개의 게시물이 있습니다.이 게시물은 내가 링크 한 게시물과 http://stackoverflow.com/questions/11361180/using-new-objective-c-literals?lq=1입니다. 더 중요한 것은, [Xcode 4.1에서 LLVM 3을 사용할 방법이 있습니까?] (http://stackoverflow.com/questions/7361824/is-there-any-way-to-use-llvm-3)에서 해결책을 시도해 보셨습니까? -in-xcode-4-1)? –
Mac 개발자 프로그램에 액세스 할 수 있으면 Xcode 4.4 GM을 지금 다운로드 할 수 있습니다. 그렇지 않으면 며칠 후에 iOS5 코드 용 리터럴을 사용할 수 있습니다. –
Xcode 4.1에서 LLVM 3을 사용할 방법이 있습니까? Xcode 4.3에서 어떤 컴파일러가 사용되는지에 차이가 없습니다. –