小编mud*_*lee的帖子

XCode 4.2 NSManagedObject上下文构建失败

我创建了一个带有一个Entry:UserBase的UserModel.xcdatamodeld,我添加了一个名称为UserID且类型为Integer 32的属性.

之后,我使用file-> new file-> NSManagedOBject子类为它创建类,它自动创建UserBase.h和.m.

在我的控制器中导入了UserBase.h文件,并创建了一个属性:

NSManagedObjectContext *userBaseObjectContext;
Run Code Online (Sandbox Code Playgroud)

@property (nonatomic, retain) NSManagedObjectContext *userBaseObjectContext;
Run Code Online (Sandbox Code Playgroud)

在mycontroller.m文件中合成了userBaseObjectContext属性,在DidLoad函数中我尝试了这个:

UserBase *userObject=(UserBase *)[NSEntityDescription insertNewObjectForEntityForName:@"UserBase" inManagedObjectContext:userBaseObjectContext];
        [userObject setUserID:[NSNumber numberWithInt:42]];
        NSError *error;
        if(![userBaseObjectContext save:&error])
        {
            UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"Application error" message:@"error" delegate:nil cancelButtonTitle:@"Close" otherButtonTitles:nil,nil];
            [alert show];
            [alert release];
        }
        else
            NSLog(@"not working...");
Run Code Online (Sandbox Code Playgroud)

当我尝试构建我的项目时,我收到此错误:

Undefined symbols for architecture i386:
 "_OBJC_CLASS_$_NSEntityDescription", referenced from:
  objc-class-ref in LoginController.o
 "_OBJC_METACLASS_$_NSManagedObject", referenced from:
  _OBJC_METACLASS_$_UserBase in UserBase.o
 "_OBJC_CLASS_$_NSManagedObject", referenced from:
  _OBJC_CLASS_$_UserBase in UserBase.o
 ld: symbol(s) not found for architecture i386
 clang: error: linker command …
Run Code Online (Sandbox Code Playgroud)

xcode nsmanagedobjectcontext ios5

10
推荐指数
1
解决办法
4441
查看次数

iOS委托不使用performSegueWithIdentifier?

我在故事板中有两个控制器(第一个,第二个),xcode 4.2.

第一个控制器有一个tableview并嵌入在导航控制器中.第二个控制器也有一个tableview并嵌入导航控制器(与第一个不同)

在first.h中:

#import "second.h"
...
@interface first : UIViewController <secondDelegate, UITableViewDelegate, UITableViewDataSource>
...
Run Code Online (Sandbox Code Playgroud)

在first.m:

- (IBAction)add:(id)sender // action when tapped a button on topbar
{
    [self performSegueWithIdentifier:@"addSegue" sender:sender];
}

....

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if([[segue identifier] isEqualToString:@"addSegue"])
    {
        NSLog(@"delegated");
        second *controller=[segue destinationViewController];
        controller.delegate=self;
    }
}

- (void)callback
{
     NSLog(@"Callback here");
}
Run Code Online (Sandbox Code Playgroud)

Segue是具有默认转换的模态segue.

second.h:

@protocol secondDelegate
   -(void)callback;
@end

....

id <secondDelegate> delegate;
@property (nonatomic,assign) id <secondDelegate> delegate;
Run Code Online (Sandbox Code Playgroud)

second.m:

... (button of topbar tapped action) ...
[self dismissModalViewControllerAnimated:YES];
NSLog(@"class: …
Run Code Online (Sandbox Code Playgroud)

xcode delegates ios segue

3
推荐指数
1
解决办法
6162
查看次数

用于获取电影时长的 Java API 或 3rdparty

我有很多视频文件。所有类型都不同(mkv、avi、mp4、flv 等)。我想迭代这些文件并获得电影的持续时间。

目前我使用的是 vlcj,这很好,但代码让我有点困惑。我必须播放媒体才能获得长度。然后停止媒体。这很奇怪,不是吗。

我能以某种方式做得更好吗?我听说过 xuggler,但开发已经停止。我需要一个仍然存在的 API 或 3rdparty 组件。而且我不想在播放之前播放媒体:)

java video xuggler vlcj

3
推荐指数
1
解决办法
2636
查看次数

Visual Studio Express 2012和Typescript输出目录

我已成功将typescript插件安装到VS. 我想更改为编译的js文件输出目录.目前,js文件与ts文件位于同一目录中.我找到了一个解决方案,说我应该安装web essentials,然后我可以修改编译器设置.不幸的是,免费的VS express不允许我安装第三方的东西.没关系,但有没有其他解决方案来改变js文件的输出目录?在命令行中,它是一个简单的--out标志.

visual-studio-2012 typescript

3
推荐指数
1
解决办法
2216
查看次数