objective-c如何实现java中的反射机制
PHPz
PHPz 2017-04-21 10:57:18
0
3
573

在开发iOS app时,经常会遇到服务端返回数据不完整的情况,比如缺少key,或者value为null的情况。

java中可以定义一个类,用反射的机制来进行数据初始化。

而objective-c中只能用nil和[NSNull null]来单独判断。来避免app crash。

整个view层也变得不够纯粹。

补充:
我现在的做法是。如果返回的是一个数组。数组中每一项又是一个对象。我们假设对象中有的key或者value是缺失的。那么就要遍历一边,逐个遇到不完整的情况追加key或者默认值。这样,在view层中,就不用再对key或value去做判断了。代码也专注在业务逻辑上。

问:
有没有更好的。更优雅的方式来实现。

PHPz
PHPz

学习是最好的投资!

모든 응답(3)
Ty80

무슨 말씀인지 잘 모르겠습니다. . . Java의 리플렉션은 인스턴스의 메서드와 속성 목록을 동적으로 얻을 수 있습니다. 이 함수의 경우 Obj-c는 인스턴스에 특정 메서드가 있는지 확인하기 위해 PerformSelector: 메서드를 사용할 수도 있습니다. 기본적으로 이는 Java의 리플렉션을 대체할 수 있습니다.
빈 반환 값을 판단하는 문제에 관해서는 현재로서는 좋은 방법이 없습니다. 보통 메서드를 정의하고 containObject:, nil, [NSNull null], length 또는 count를 순차적으로 판단합니다. 이 메서드는 util로 작성하거나 NSDictionary 및 NSArray로 작성하도록 확장할 수 있습니다.

伊谢尔伦

Objc의 KVC 메커니즘은 Java의 리플렉션과 유사합니다. 구글링해 보세요

예를 들어
@인터페이스 A : NSObject{
NSString * 이름;
}

이렇게 얻으시면 됩니다

A *a = [[A 할당] 초기화];

NSString *name = [a objectForKey:@"name"];

이런 일을 하고 싶은지 모르겠어요

nscoding 인터페이스를 구현합니다. - (id)initWithCoder:(NSCoder *)aDecoder는 원하는 것을 할 수 있습니다. 제가 제대로 이해한 것인지 모르겠습니다.

小葫芦
  • OC에는 Json을 ViewModel로 변환할 수 있는 JSONModel의 오픈 소스 프레임워크가 있습니다.
  • null 값 문제는 View 레이어를 사용할 때 판단하거나 ViewModel 구성 시 기본값을 설정할 수 있습니다

  • OC 반영과 관련하여 NSClassFromString, NSSelectorFromString 및 기타 방법을 사용할 수 있습니다

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!