2013-11-22 40 views
0

當我運行下面的代碼時,我從Parse.com數據庫中獲取數據,但是當我嘗試打印出試圖存儲此數據的數組時,它會發出一個空值。幫幫我!無法將解析對象添加到NSMutableArray

PFQuery *query = [PFQuery queryWithClassName:@"Resolution"]; 
    [query whereKey:@"event" equalTo:event_name_label.text]; 
    [query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) { 
     if (!error) { 
      for (PFObject *object in objects) { 
       [resolution_names addObject:(NSString*)[object objectForKey:@"resolution_name"]]; 
       NSLog(@"%@", [object objectForKey:@"resolution_name"]); 
      } 
      NSLog(@"%@", resolution_names); 
     } else { 
      NSLog(@"Error: %@ %@", error, [error userInfo]); 
     } 
    }]; 

我已經正確地宣佈(我認爲)NSMutableArray resolution_names,但它在記錄它時返回null。

這裏是我的頭文件:

#import <UIKit/UIKit.h> 

@interface MenuViewController : UIViewController { 
IBOutlet UILabel *event_name_label; 

NSString *event_id; 
NSString *event_name; 
NSMutableArray *resolution_names; 
NSMutableArray *resolution_pro_speakers; 
NSMutableArray *resolution_con_speakers; 
NSMutableArray *resolution_results; 

NSMutableArray *billtrackertablevalues; 
} 

@property (nonatomic, retain) IBOutlet UILabel *event_name_label; 

@property (nonatomic) NSString *event_id; 
@property (nonatomic) NSString *event_name; 

@property (nonatomic) NSMutableArray *resolution_names; 
@property (nonatomic) NSMutableArray *resolution_pro_speakers; 
@property (nonatomic) NSMutableArray *resolution_con_speakers; 
@property (nonatomic) NSMutableArray *resolution_results; 

@property (nonatomic) NSMutableArray *billtrackertablevalues; 

@end 

再一次,我能看到的值[對象objectForKey:@「resolution_name」]在控制檯,但是當我嘗試輸出的值NSMutableArray resolution_names,它只是在控制檯上顯示「(null)」。

回答

2

NSMutableArray s很常見的錯誤是忘記初始化它們。由於我沒有看到你的數組的初始化,它返回(null)我想這是值得一試。

嘗試將此添加到您的viewDidLoadinit方法中。

self.resolution_names = [[NSMutableArray alloc] init]; 
0

夫婦的事情。你不需要聲明iVar,只是屬性會做。接下來,你應該指定你的數組爲strong,它告訴編譯器保留該對象。所以,@property (nonatomic) NSMutableArray *resolution_names;變成@property (strong, nonatomic) NSMutableArray *resolution_names;

最後,您應該重寫默認獲取器,以在應用程序需要它時懶惰地實例化數組。

- (NSMutableArray *)resolution_names 
{ 
    if(!_resolution_names){ 
    _resolution_names = [NSMutableArray array]; 
    } 
    return _resolution_names; 
} 
+0

默認情況下屬性很強。 –