小编ber*_*ium的帖子

如何从Cocoa Notification蹦床到调用c函数指针?

我想在我的环境中设置这样的东西.

[[NSUserDefaultsController sharedUserDefaultsController] addObserver:self
    forKeyPath:[@"values." stringByAppendingString: @"MyPreference"]
    options:NSKeyValueObservingOptionNew
    context:NULL];
Run Code Online (Sandbox Code Playgroud)

我是在Smalltalk环境中这样做的.特定的Smalltalk实际上可以通过objective-c运行时功能来驱动上述内容.问题在于那里的"自我"作为addObserver:论点.从Smalltalk,我可以创建一个C函数指针,它将作为Smalltalk的回调函数.但它无法提供Object对ObjectiveC环境的概念.

所以我试图弄清楚如何使用适当的API从某种对象中蹦床,导致我创建的函数指针被执行.我看过NSInvokation和朋友们,但没有一个用来包裹C函数指针.而且我不确定他们会翻译addObserver:forKeyPath:options:context:做正确的事情.

简而言之,问题是,如何使用现有的Cocoa对象来注册对Notification的响应,该响应是执行C函数指针而不编译任何新的objc代码.

cocoa smalltalk objective-c

5
推荐指数
1
解决办法
358
查看次数

iPhone上的Xcode和iOS5.1无法正常工作

我错过了什么?我将iPhone更新为5.1,现在Xcode不会在其上安装开发人员应用程序.这是来自组织者:

操作系统安装在用户的iPhone 5.1上(9B179)

Xcode支持iOS版本最新5.0(9A334)4.3 4.2

iphone xcode ios ios5 ios5.1

5
推荐指数
1
解决办法
2901
查看次数

单个类中的多个初始化器(swift)

创建一个带有属性的 Triangle 类来存储每条边的长度。当三边长度不同时,三角形称为不等边形,当两条边长度相同时称为等腰三角形,当三边长度相同时称为等边三角形。

为您的类创建一个初始化程序,它接受三个参数并正确设置类属性。接下来,创建第二个初始值设定项以在三角形为等边三角形时使用。请记住,所有三个边的长度都相同,因此此方法应该只接受一个参数,但仍应设置所有三个属性。尝试先将此构造器编写为指定构造器,然后再将其转换为便利构造器。最后,我们需要一个带两个参数的等腰三角形的初始化器。想想你应该如何为你的参数设置外部名称,以明确两个方面将使用哪个值

这个问题让我非常困惑。我的问题是:我应该如何init在一个类中创建等腰线和不等边线?还是我应该创建另一个类?我需要帮助。我是斯威夫特的新手。这是我到目前为止所得到的。

class Triangle {

    var sideA: Int
    var sideB: Int
    var sideC: Int

    init(sideA: Int, sideB: Int, sideC: Int) {

        self.sideA = sideA
        self.sideB = sideB
        self.sideC = sideC
    }

    convenience init(equilateralWithEdge edge:Int) {
        self.init(sideA: edge, sideB: edge, sideC:edge)
    }

}
Run Code Online (Sandbox Code Playgroud)

initializer swift

5
推荐指数
1
解决办法
9589
查看次数

使用UITapGestureRecognizer

iPhone开发新手 我有一个视图,其中包含一个包含UIImageView的UIScrollView.我在图像视图上添加了一个(双)轻击手势识别器,使警报框打开.出于某种原因,我确信我只是迟钝,它开了3次.

这是我的代码:

- (void)viewDidLoad {

    scrollView.delegate = self;

    UIImage* image = imageView.image;
    imageView.bounds = CGRectMake(0, 0, image.size.width, image.size.height);
    scrollView.contentSize = image.size;

    UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapGesture:)];
    tapGesture.numberOfTapsRequired = 2;
    [imageView addGestureRecognizer:tapGesture];
    [tapGesture release];

    NSLog(@"LOADED");

    [super viewDidLoad];
}

-(IBAction) handleTapGesture:(UIGestureRecognizer *) sender {
    CGPoint tapPoint = [sender locationInView:imageView];
    int tapX = (int) tapPoint.x;
    int tapY = (int) tapPoint.y;
    NSLog(@"TAPPED X:%d Y:%d", tapX, tapY);
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Hello" message:@"How are you?" delegate:nil cancelButtonTitle:@"I'm awesome." otherButtonTitles:nil];
    [alert show]; …
Run Code Online (Sandbox Code Playgroud)

iphone objective-c gesture-recognition uitapgesturerecognizer

4
推荐指数
1
解决办法
2万
查看次数

错误域= SKErrorDomain代码= 0"无法连接到iTunes Store"

我正在为我的iPad应用程序进行应用内购买.我能够收到该productsRequest:didReceiveResponse方法,并收到产品数组.

当我向SKPaymentQueue添加SKPayment时出现问题.将产品添加到队列后,在该paymentQueue:updatedTransactions方法中,事务始终具有状态SKPaymentTransactionStateFailed.

我NSLog transaction.error,这是它返回的:

错误域= SKErrorDomain代码= 0"无法连接到iTunes Store"UserInfo = 0x339120 {NSLocalizedDescription =无法连接到iTunes Store}.

而且我也无法在"管理用户"中添加任何新的测试用户.

我们欢迎任何解决方案.谢谢

itunesconnect objective-c in-app-purchase ipad

4
推荐指数
1
解决办法
5273
查看次数

模拟启动选项

在我的appDelegate,我有一些规格当应用程序启动与来自ie邮件应用程序的文件.

当我启动我的应用程序时,一切正常.当我通过Mail中的文件启动应用程序时,应用程序崩溃了.不幸的是,我无法调试它,因为我无法模拟launchingOptions.此刻,我建立并运行,然后断开iPad,关闭我的应用程序,然后去邮件等...有没有办法调试?

Appdelegate.m

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

NSURL *url = (NSURL *)[launchOptions valueForKey:UIApplicationLaunchOptionsURLKey];

IntroViewController *introViewController = (IntroViewController *)self.window.rootViewController;

if (url !=nil) {
    if ([url isFileURL]) {
        introViewController.fileUrl = url;
    }


}

NSLog(@"%@",[url path]);

return YES;
}
Run Code Online (Sandbox Code Playgroud)

IntroViewController

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    NSLog(@"Hello");
    if (fileUrl != nil) {
        IntroTableViewController* introTable = (IntroTableViewController *)segue.destinationViewController;            
        introTable.openedByURL = [fileUrl path];

        TabBarController* tabBarController = (TabBarController *)segue.destinationViewController;
        UINavigationController* navigationController = (UINavigationController *)[[tabBarController viewControllers] objectAtIndex:0];
        TargetLSController* targetViewController = (TargetLSController *)[[navigationController …
Run Code Online (Sandbox Code Playgroud)

debugging xcode launching-application ipad ios

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

如何隐藏MPmoviePlayerController的控制栏

如何隐藏MPmoviePlayerController的控制栏.

我只是想让电影全屏,并且没有任何内容.

NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:dataPath ofType:@""]];
        moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:url];
        [[NSNotificationCenter defaultCenter] addObserver:self
                                                 selector:@selector(moviePlaybackComplete:)
                                                     name:MPMoviePlayerPlaybackDidFinishNotification
                                                   object:moviePlayerController];  

        [self.view addSubview:moviePlayerController.view];
        [moviePlayerController.view setFrame:CGRectMake(0, 0, 1024, 768)];
        moviePlayerController.fullscreen = YES;
        if ([moviePlayerController respondsToSelector:@selector(setAllowsAirPlay:)])    
            //Allow airplay ifavailabe
        [moviePlayerController setAllowsAirPlay:YES];

        [moviePlayerController play];
Run Code Online (Sandbox Code Playgroud)

xcode cocoa-touch ios

4
推荐指数
1
解决办法
6061
查看次数

在iOS中保存和从SQLite中检索图像

我试图将图像保存到Sqlite,然后将图像加载到UIImageView.但它没有得到工作.我不会出错.这是我正在使用的代码.任何人都可以帮我解决这个问题.

- (void)saveImage {
    sqlite3_stmt *compiledStmt;
    if(sqlite3_open([dbPath UTF8String], &db)==SQLITE_OK){
        const char *insertSQL="insert into Image(Image)values(?)";
        if(sqlite3_prepare_v2(db,insertSQL, -1, &compiledStmt, NULL) == SQLITE_OK){
            UIImage *image = [UIImage imageNamed:@"farmhouse.png"];
            NSData *imageData=UIImagePNGRepresentation(image);
            sqlite3_bind_blob(compiledStmt, 1, [imageData bytes], [imageData length], NULL);

            sqlite3_step(compiledStmt);

            char *errMsg;
            sqlite3_exec(db, insertSQL, NULL,compiledStmt,&errMsg);

        }
    }
}

- (void)showImage {
    sqlite3_stmt *compiledStmt;
    if(sqlite3_open([dbPath UTF8String], &db)==SQLITE_OK){
        const char *insertSQL = "Select Image from Image Where Sl.No = ?";
        sqlite3_prepare_v2(db,insertSQL, -1, &compiledStmt, NULL);
        if(sqlite3_prepare_v2(db,insertSQL, -1, &compiledStmt, NULL) == SQLITE_OK){
            sqlite3_bind_int(compiledStmt, 1, 1);
            if(SQLITE_DONE != sqlite3_step(compiledStmt)) { …
Run Code Online (Sandbox Code Playgroud)

objective-c ios

4
推荐指数
1
解决办法
1万
查看次数

jQuery选择器在字段集中查找输入

我喜欢在字段集中查找输入框的值,如下所示

fieldset> div >div> input[with class name 'inputclassname']
Run Code Online (Sandbox Code Playgroud)

我知道字段集的ID,并尝试使用其类名查找输入值,但我无法确定.value是未定义的。

我尝试过这样

$('#ID of fieldset').find($('.inputclassname')).val();
Run Code Online (Sandbox Code Playgroud)

它总是返回未定义状态。有什么建议么?

jquery jquery-selectors

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

在Swift中动态创建对象

在Objective-C中我有一个类别:

@implementation NSObject (Entity)
+ (instancetype)entity{
    Class cl = self.class;
    NSObject *obj = [[cl alloc] init];

    return obj;
}
@end
Run Code Online (Sandbox Code Playgroud)

我们假设有A和B类:

@interface A : NSObject
@end

@interface B : NSObject
@end
Run Code Online (Sandbox Code Playgroud)

然后我可以使用静态entity方法来创建像这样的对象:

NSObject *o = [NSObject entity]; // type of NSObject
A *a = [A entity];               // type of A
B *b = [B entity];               // type of B
Run Code Online (Sandbox Code Playgroud)

如何在Swift中编写该类别?我知道可以通过知道类型来创建一个对象let s = NSString.self; var str = s.init(),但是在这里我不知道这个类,它应该是self.self没有意义的东西,并且不能确定.

提前致谢

macos introspection objective-c ios swift

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