最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Objective-C處理空字符串和頁(yè)面?zhèn)髦导白远x拷貝

 更新時(shí)間:2016年01月20日 09:17:38   作者:芳草小腳丫  
這篇文章主要介紹了Objective-C處理空字符串和頁(yè)面?zhèn)髦导白远x拷貝的相關(guān)方法,在iOS應(yīng)用項(xiàng)目開發(fā)中經(jīng)常會(huì)用到,需要的朋友可以參考下

空字符串
在ios應(yīng)用中,如果從網(wǎng)絡(luò)請(qǐng)求數(shù)據(jù),返回json或者是xml格式的數(shù)據(jù)時(shí),經(jīng)常會(huì)遇到空串,一般接口是用java等語(yǔ)言寫的,如果是安卓,因?yàn)樵凑Z(yǔ)言都是java,只需判斷是否等于null即可,但是在ios中會(huì)出現(xiàn)各種各項(xiàng)的形式,比如null,(null),<null>。
如果單純用

復(fù)制代碼 代碼如下:

string!=nil;

無法判斷出尖括號(hào)的空串

完整判斷方法

復(fù)制代碼 代碼如下:

-(BOOL)isNull:(id)object
{
    // 判斷是否為空串
    if ([object isEqual:[NSNull null]]) {
        return NO;
    }
    else if ([object isKindOfClass:[NSNull class]])
    {
        return NO;
    }
    else if (object==nil){
        return NO;
    }
    return YES;
}

對(duì)空串進(jìn)行發(fā)消息會(huì)出現(xiàn)各種各樣的崩潰,讓人很無語(yǔ),同理轉(zhuǎn)換字符串
復(fù)制代碼 代碼如下:

-(NSString*)convertNull:(id)object{
 
    // 轉(zhuǎn)換空串
 
    if ([object isEqual:[NSNull null]]) {
        return @" ";
    }
    else if ([object isKindOfClass:[NSNull class]])
    {
        return @" ";
    }
    else if (object==nil){
        return @"無";
    }
    return object;
    
}

頁(yè)面?zhèn)髦岛妥远x拷貝
做網(wǎng)絡(luò)相關(guān)的一些問題時(shí),有時(shí)候值比較多,自定義個(gè)一個(gè)類,想把這個(gè)類的整個(gè)部分的值傳到另一個(gè)界面,這就涉及到拷貝問題,自定義的類里一定要實(shí)現(xiàn)NSCopying協(xié)議,寫上拷貝的方法- (id)copyWithZone:(NSZone *)zone,這樣這個(gè)類才會(huì)像NSString類一樣,可以用=賦值拷貝。
自定義一個(gè)TypesItem類,繼承自NSObject,含有三個(gè)變量(可自定義添加多個(gè))

TypesItem.h

復(fù)制代碼 代碼如下:

#import <Foundation/Foundation.h>
 
@interface TypesItem : NSObject<NSCopying>
{
    NSString *type_id;
    NSString *type_memo;
    NSString *type_name;
}
@property (nonatomic,copy) NSString *type_id;
@property (nonatomic,copy) NSString *type_memo;
@property (nonatomic,copy) NSString *type_name;
 
 
@end

TypesItem.m文件中,除了要synthesize這三個(gè)變量之外

復(fù)制代碼 代碼如下:

@synthesize type_id,type_memo,type_name;


還要實(shí)現(xiàn)NSCopying協(xié)議方法
復(fù)制代碼 代碼如下:

- (id)copyWithZone:(NSZone *)zone

- (id)copyWithZone:(NSZone *)zone
{
    TypesItem *newItem = [[TypesItem allocWithZone:zone] init];
    
    newItem.type_name = self.type_name;
    newItem.type_id = self.type_id;
    newItem.type_memo = self.type_memo;
    return newItem;
}


頁(yè)面間傳值,假設(shè)A->B,A中的TypeItem的值要傳到B中

在B中.h文件寫上代碼

復(fù)制代碼 代碼如下:

@property(nonatomic,copy) TypesItem *selectedItem;

在B.m文件中
復(fù)制代碼 代碼如下:

@synthesize selectedItem;

在A.m中跳轉(zhuǎn)到B之前加上代碼
復(fù)制代碼 代碼如下:

BViewController *BVC = [[[BViewController alloc] initWithNibName:@"BViewController" bundle:nil] autorelease];
  
    // item為TypeItem類型,且不為空
  
    BVC.selectedItem = item;
    
    [self.navigationController pushViewController:BVC animated:YES];

PS:頁(yè)面間傳值時(shí),此處的BVC.selectedItem中的BVC一定與push過去的BVC保持一致,否則push到B界面中的selectedItem值必定為null。

相關(guān)文章

最新評(píng)論

昌宁县| 鄢陵县| 广州市| 体育| 会东县| 安图县| 夹江县| 行唐县| 兖州市| 伽师县| 武定县| 永年县| 桐庐县| 铁力市| 衡阳县| 北流市| 庐江县| 上林县| 崇州市| 扶余县| 密云县| 巍山| 江门市| 武威市| 两当县| 修水县| 从江县| 天气| 兴城市| 全州县| 临安市| 铁力市| 锡林郭勒盟| 奉新县| 宁明县| 衡东县| 江阴市| 石景山区| 仙游县| 古蔺县| 繁昌县|