我是目標 c 的新手。我有一個 mainViewController 類,我創建了另一個物件類。我在 mainViewController 的 .h 檔案中宣告了另一個類。我用
#import <Foundation/Foundation.h>
#import "OtherClass.h"
NS_ASSUME_NONNULL_BEGIN
@interface ViewController : UIViewController
@property (strong, nonatomic) OtherClass *jsonData;
@end
NS_ASSUME_NONNULL_END
然后我從 mainViewController .m 檔案中呼叫其他類的函式。
該方法回傳 NSMutableArray 并且它有效。但是有可能會發生錯誤,因此它可能不會回傳 NSMutableArray 而是回傳 NSError。我需要該類將錯誤回傳給 mainViewController。
我怎樣才能做到這一點?任何幫助表示贊賞。
uj5u.com熱心網友回復:
您可以使用:id jsonData代替OtherClass *jsonData:
@property (strong, nonatomic) OtherClass *jsonData;
=>
@property (strong, nonatomic) id jsonData;
然后做
if ([jsonData isKindOfClass: [OtherClass class]])
{
}
else if ([jsonData isKindOfClass: [NSError class]])
{
}
else
{
//It's none
}
但也許您想要擁有 2 個屬性,使用 justif (jsonData) {}或if (jsonError) {}?
@property (strong, nonatomic) OtherClass *jsonData;
@property (strong, nonatomic) NSError *jsonError;
另一種可能性是將其嵌入到自定義物件中:
@interface ResponseData: NSObject
@property (strong, nonatomic) OtherClass *data;
@property (strong, nonatomic) NSError *error;
@end
進而:
@interface ViewController : UIViewController
@property (strong, nonatomic) ResponseData *json;
@end
并檢查json.data或json.error?
uj5u.com熱心網友回復:
我的 Objective-C 有點生疏,但我相信我可以提供幫助。
id在 ObjC 中與AnyObject在 Swift 中非常相似。
所以你的型別可以使用,id但你需要轉換它
您可以使用我們isKindOfClass來測驗回傳的型別,然后對其進行轉換。
@property (strong, nonatomic) id *someType;
if [someType isKindOfClass:[NSMutableArray class]) {
}
if [someType isKindOfClass:[NSError class]) {
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/329172.html
