1

この問題は簡単に克服できると思っていましたが、少し難しくてイライラすることになりました.

UISegmentedControl を使用して選択を行い、NSNumber エンティティを使用してコア データに保存しています。残念ながら、整数をセグメント コントロールから NSNumber に変換しようとすると、(null) になります。以下は私の問題のサンプルコードです。

//  ViewController.h

#import <UIKit/UIKit.h>
#import "Object.h"

@interface ViewController : UIViewController

@property (weak, nonatomic) IBOutlet UISegmentedControl *segmentOutlet;

@property (strong, nonatomic) Object *currentObject;  //core data object with an entity named subObject as an NSNumber

- (IBAction)segmentControlSelected:(id)sender;

@end

//ViewController.m

-(IBAction)segmentControllerSelected
    {
    [self.segmentOutlet selectedSegmentIndex]  // segment control
    currentObject.subObject = [NSNumber numberWithInt:([self.segmentOutlet selectSegmentIndex]);
NSLog(@"the another Object number is %@", currentObject.subObject);   
    }

NSLog %@ の結果は (null) であるため、これがどのように正しいかわかりません。

私はプログラミングを学び始めたばかりなので、おそらく初歩的な初歩的なミスです。助けてくれてありがとう

4

1 に答える 1

0

として指定segmentOutletする必要がありますstrong。メモリ システムは、ある時点でそれを破棄しています。次に、試してみるとself.segmentOutlet、戻り値はnilです。呼び出しselectSegmentIndexが失敗した後、デフォルトで戻りnil、最終的に「null」になります。試す:

@property (strong, nonatomic) IBOutlet UISegmentedControl *segmentOutlet;
于 2013-04-06T02:18:12.947 に答える