将一个NSString复制到另一个Xcode中

时间:2016-11-21 10:55:30

标签: ios objective-c iphone xcode nsstring

我在Xcode中遇到问题。我正在尝试将一个NSString复制到另一个NSString但是无效。

原始NSString pageTitle 位于RestViewController上: 这是我的RestViewContoller.h:

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

@interface RestViewController : UIViewController

@property (strong, nonatomic) IBOutlet UILabel *TitleLabel;
@property (strong, nonatomic) IBOutlet UILabel *DescriptionLabel;
@property (strong, nonatomic) IBOutlet UIImageView *ImageView;

@property (nonatomic, strong) Restaurant *DetailModal;

@property (nonatomic, strong) NSString *pageTitle;
@property (nonatomic, strong) NSString *pageDescription;

@end

我要保存数据的NSString在RestViewController上:

@property (nonatomic, strong) Restaurant *DetailModal;

但是餐厅类型。

我的餐厅课程是: Restaurant.h:

#import <Foundation/Foundation.h>

@interface Restaurant : NSObject

@property (nonatomic, copy) NSString *title;
@property (nonatomic, copy) NSString *desc;
@property (nonatomic, copy) NSString *image;

- (instancetype)init:(NSString *)title descripiton:(NSString *)description image:(NSString *)image;

@end

Restaurant.m:

#import "Restaurant.h"

@implementation Restaurant

- (instancetype)init:(NSString *)title descripiton:(NSString *)description image:(NSString *)image {
    self = [super init];
    if (self != nil) {
        self.title = title;
        self.desc = description;
        self.image = image;
    }
    return self;
}
@end

最后我要复制这个NSStrings的地方是我的RestViewController.m:

  #import "RestViewController.h"
    #import <QuartzCore/QuartzCore.h>

    @interface RestViewController ()

    @end

    @implementation RestViewController


    - (void)viewDidLoad {
        [super viewDidLoad];
        _pageTitle = @"Test";
            _DetailModal.title = _pageTitle;
            NSLog(@"_DetailModal.title: %@", _DetailModal.title);
    }

    @end

问题是当我看到

的结果时
  

NSLog(@“_ DetailModal.title:%@”,_ DetailModal.title); on the console, it puts me: 2016-11-21 11:42:05.407 MadEat [3667:104028]   _DetailModal.title :( null)

我该怎么办?我知道我的Xcode水平很低,但我需要你的帮助。非常感谢你。

5 个答案:

答案 0 :(得分:1)

首先启动DataModel的实例。

然后继续分配

_DetailModal = [[DetailModal alloc] init:_pageTitle descripiton:@"Desc" image:@"image"];

已经定义了一个实例方法来完成任务。

此后,您也可以通过

更改值
_DetailModal.title = @"title_of_yours"

答案 1 :(得分:1)

如果必须使用detailmodal,则必须分配餐厅类对象(detailmodal)。然后只能使用这些对象。

detailmodal=[[restaurant alloc]init];
detailmodal.title=_pagetitle;

答案 2 :(得分:0)

在使用对象之前,必须先创建它。

DetailModal *detailModal = [DetailModal new];

这样就可以创建对象,并保留存储在类属性中的值。

答案 3 :(得分:0)

尝试:

_DetailModal.title = [[NSString alloc] initWithString: _pageTitle];

(没试过这个)

答案 4 :(得分:0)

请跟你_DetailModal不是 nil

如果 nil 那么

首先,您需要为DetailModal类对象

分配内存 像这样

DetailModal *detailModal = [DetailModal new];

然后设置你想要的值

 detailModal.title = _pageTitle;