这是我的NSObject代码;
Task.h
#import <Foundation/Foundation.h>
@interface Task : NSObject
@property (nonatomic,strong) NSString *name;
@property (nonatomic,assign) BOOL done;
-(id)initWithName:(NSString *)name done:(BOOL)done;
@end
Task.m
#import "Task.h"
@implementation Task
@synthesize name = _name;
@synthesize done = _done;
-(id)initWithName:(NSString *)name done:(BOOL)done {
self = [super init];
if (self) {
self.name = name;
self.done = done;
}
return self;
}
这是我的发送邮件代码
Task *task = [[Task alloc]init];
MFMailComposeViewController *sendmail = [[MFMailComposeViewController alloc]init];
[sendmail setMailComposeDelegate:self];
NSString *message = [_tasks addObject:task]; // Error is here.
[sendmail setMessageBody:message isHTML:NO];
[sendmail setSubject:@"Test"];
[self presentViewController:sendmail animated:YES completion:nil];
我不知道,怎么做。我只想用邮件发送清单。我的错误在哪里?我该如何解决这个问题?
Tasklistviewcontroller.m
@synthesize tasks = _tasks;
我正在从任务表视图转移。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *NotDoneCellIdentifier = @"NotDoneTaskCell";
static NSString *DoneCellIdentifier = @"DoneTaskCell";
Task *currentTask = [self.tasks objectAtIndex:indexPath.row];
NSString *cellIdentifier = currentTask.done ? DoneCellIdentifier : NotDoneCellIdentifier;
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier forIndexPath:indexPath];
// Configure the cell...
cell.textLabel.text = currentTask.name;
return cell;
}
答案 0 :(得分:0)
我不知道您的代码中究竟是什么错误,因为您没有提供错误,而且我在Objective-C中并不熟练。
我怀疑是因为您引用了“_tasks”,我没有看到其他代码来创建该类。
NSString *message = [_tasks addObject:task];
另一个问题是你使用task作为数组的输入对象,但它可能不包含某些内容。
你可能不喜欢这样:
Task *task = [[Task alloc] initWithName:@"Task 1"];
NSString *message = [[NSString alloc] initWithFormat:@"Task name is %@", task.name];
另外我猜你还没有发布完整的代码。
您还忘记在头文件中包含用于在应用内邮寄的正确框架:
#import <MessageUI/MFMailComposeViewController.h>
不要忘记将框架添加到您的项目中!
顺便说一句,您可以使用synthesize
删除这两行,编译器最近会自动执行此操作。不是很好吗?