小编Man*_*nni的帖子

Objective-C:线程中的服务器请求(如Android中的AsyncTask)

我想启动一个服务器请求,你可以取消.

我的想法是在一个线程中启动请求,以便用户界面不会冻结.因此,您可以通过单击"取消"按钮来终止包括请求在内的整个线程.

使用Android它可以工作:服务器请求在"AsyncTask"和"onReturn()"中启动 - 方法我可以在服务器请求完成后立即做出反应.

如何在iOS上使用Objective-C实现这一点?我的第一次尝试是"NSInvocationOperation".您可以取消操作,但在请求完成且结果可用时很难处理.我认为NSInvocationOperation不是我的问题的解决方案.

你会推荐给我吗?NSThread是我的正确选择吗?

非常感谢你!

iphone multithreading objective-c request ios

11
推荐指数
1
解决办法
4221
查看次数

Xcode 4.3 for Snow Leopard

Xcode 4.3几天前发布,但Lion只有一个版本:https:
//developer.apple.com/downloads/index.action

Xcode 4.3与Snow Leopard兼容吗?

iphone xcode ios xcode4.3

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

如何在UIBarButtonItem上触发高亮效果

点击a UIBarButtonItem中的a时UIToolbar,会出现白色发光效果.

是否有可能发射事件以显示此效果?

我不想按下按钮.只应显示效果.我想向用户显示该按钮后面有新内容.

谢谢你的帮助!

iphone objective-c uibarbuttonitem ios

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

Microsoft Sync Framework 2.1-示例项目,编写提供程序,更改跟踪,元数据

我发现很难找到Sync Framework 2.1的条目。我可以使用任何好的教程或示例项目吗?

我的目标是将客户端与.NET 4.5和Microsoft SQL Server 2012 LocalDB与带有Microsoft SQL Server 2012的Windows 2008 R2服务器同步。

我想知道如何在客户端和服务器上编写一个同步提供程序。

是对的,MS SQL Server同步框架的提供程序不支持“更改跟踪”?我必须编写自己的提供程序吗?管理员如何管理服务器的“元数据”?

非常感谢您的帮助!

.net microsoft-sync-framework

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

带有iOS 6 SDK的Xcode 5:"UIAccelerometer"不可用:OS X上不可用

我尝试在Xcode 5下针对iOS 6 SDK编译我的应用程序.我按照一些教程如何在Xcode 5中使用旧的iOS SDK:将SDK从旧的Xcode(4.6.3)复制到Xcode 5中.

一切似乎都很好,我将"Base SDK"设置为"iOS 6.1",将"iOS Deployment Target"设置为"iOS 5.0"并下载iOS 6.1模拟器.但是当我尝试编译应用程序时,我遇到了很多错误'UIAccelerometer' is unavailable: not available on OS X

我不想为OS X构建我的应用程序,仅适用于iOS!我检查了"支持的平台",但它已正确设置为"iOS".

在此输入图像描述

在此输入图像描述

iphone xcode objective-c ios xcode5

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

Objective-C:如何检查协议对象是否是特殊类

这个Java代码有效:

public void executeCommand(ICommand cmd) { // ICommand is an Interface
 if (cmd.getClass().equals(LoginCommand.class)){

 }
}
Run Code Online (Sandbox Code Playgroud)

但是这个Objective-C-Code不起作用:

- (void)executeCommand: (id<Command>)cmd { // Command is a Protocol
 if ([cmd isKindOfClass:[LoginCommand class]]) {
  // WARNING: '-conformsToProtocol:' not found in protocol
 }
}
Run Code Online (Sandbox Code Playgroud)

protocols interface objective-c

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

UINavigationItem:创建一个"nextBarButtonItem"(=带箭头的rightBarButtonItem)

UINavigationItem中有3个Bar-Buttons:

  • backBarButtonItem
  • leftBarButtonItem
  • rightBarButtonItem

但是没有"nextBarButtonItem"(=带箭头的rightBarButtonItem).我该如何创建它?我需要带箭头的自己的图像吗?如何将图像放在rightBarButtonItem中?或者没有图像有更好的方法吗?

替代文字

iphone objective-c uinavigationbar uibarbuttonitem

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

TTPhotoViewController:停用图库自动缩放

在我的项目中,我使用Facebook API"three20":https://github.com/facebook/three20/

现在,我需要自定义TTPhotoViewController.在画廊中,有一个"自动缩放".始终使用完整的宽度和高度: 在此输入图像描述

缺点是您无法看到完整的照片,并且可能会切断/裁剪重要信息.

如何停用自动变焦?

谢谢!


编辑03-Mar-2011:

罗曼的回答似乎很好,但不幸的是,这对我没有帮助.是的,内容模式UIViewContentModeScaleAspectFill是问题:

缩放内容以填充视图的大小.可以剪裁内容的某些部分以填充视图的边界.

但是没有其他内容模式可以解决我的问题.我想,我必须深入了解three20并自己缩放图像.但我需要你的帮助才能做到这一点!那么,今天我将开始一个新的"赏金"(03/03/2011)......

非常感谢你!!


编辑07-Mar-2011:

终于我明白了!!罗马的答案是对的,我必须使用UIViewContentModeScaleAspectFit.

问题是:我在Photo-Object中使用了错误的大小!320x480为我工作:

NSMutableArray *photos = [NSMutableArray new];

for (Information *info in allImages) {
    NSString *binaryId = info.binary;

    NSString *fileName = [NSString stringWithFormat:@"documents://img/%@.jpg", binaryId];

    Photo *photo = [[[Photo alloc] initWithCaption:info.name 
                                              urlLarge:fileName 
                                              urlSmall:fileName 
                                              urlThumb:fileName 
                                              size:CGSizeMake(320, 480)] autorelease];

    [photos addObject:photo];

}

self.photoSource = [[PhotoSet alloc] initWithTitle:@"Photos" photos:photos];
Run Code Online (Sandbox Code Playgroud)

iphone objective-c three20 ttphotoviewcontroller ios

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

Objective-C:如何检查类是否按类别扩展?

在Java中,您可以使用instanceof检查类是否扩展另一个类或实现接口.

在Objective-C中,您可以使用isKindOfClass检查类是否扩展了另一个类:

if ([myObject isKindOfClass:[AnClass class]]) { }
Run Code Online (Sandbox Code Playgroud)

但我怎么能检查,如果一个类被通过扩展类别


编辑2

不幸的是,我的第一个编辑的代码有点令人困惑和荒谬,抱歉!现在,这是我的新代码:

我将解释整个问题:
我有一个课程ViewCustomerCreate延伸UITableViewController.ViewCustomerCreate按类别扩展ICheckBox.这是我的代码不起作用:

- (void)closeModalView {
    UINavigationController *parent = (UINavigationController *)self.navigationController.parentViewController;
    UIViewController *parentViewContr = parent.topViewController;

    if ([parentViewContr isKindOfClass:[id<ICheckBox> class]]) { // ERROR-MESSAGE see below
        id<ICheckBox> parent2 = (id<ICheckBox>)parentViewContr; // works fine :-)
        [parent2 setSelectedElementId:checkedIndex]; // works fine :-)
    }   

    [self.navigationController dismissModalViewControllerAnimated:YES];
}
Run Code Online (Sandbox Code Playgroud)

错误消息是: " 错误:'id'不是Objective-C类名或别名 "

我认为我不能使用isKindOfClass来检查一个类是否被一个类扩展,不是吗?

PS:我想要什么?我有一个带复选框的通用模态视图,如果我关闭此视图,则应该通知父视图用户选择的内容.


编辑3

天哪,我把分类与协议混为一谈!! Aaaaahhhhh ^^

解决方案:

if …
Run Code Online (Sandbox Code Playgroud)

objective-c categories

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

Objective-C:在iOS中转发消息

是否可以在iOS中使用"Forwarding"(http://en.wikipedia.org/wiki/Objective-C#Forwarding)?

我尝试了以下在此处找到的代码:

- (retval_t) forward: (SEL) sel : (arglist_t) args
Run Code Online (Sandbox Code Playgroud)

但是我收到一条错误消息:

错误:预期')'在'retval_t'之前

所以我在这里阅读并尝试:

- (retval_t)forward:(SEL)sel args:(arglist_t) args
Run Code Online (Sandbox Code Playgroud)

但我得到了同样的错误信息......

我究竟做错了什么?我需要导入一些东西吗?


@bbum:我尝试创建一个线程安全的NSMutableArray,并希望使用我在这里找到的代码: NSMutableDictionary线程安全

iphone forwarding objective-c ios

0
推荐指数
1
解决办法
2346
查看次数

如何合并两个图像用于视网膜显示(@ 2x)?

我想补充一个UIImageUIImageViewUITableViewCell内部UITableViewController.这很好用:

cell.imageView.image = [UIImage imageNamed:@"myImage.png"];
Run Code Online (Sandbox Code Playgroud)

但现在,我想合并两个图像并使用我在这里找到的代码:

UIImage *mergedImage = [MyUtils mergeImage:@"myBackImage.png" withImage:@"myFrontImage.png"];
Run Code Online (Sandbox Code Playgroud)

这适用于旧的iPhone(320x480)但不适用于视网膜显示器.在我的项目中,每个图像都有"@ 2x"版本.我分析代码并解释问题.

a)在iPhone 3上没有合并(WORKS)
- 图像宽度:28.0
- 图像高度:29.0
- 图像比例:1.0

b)在iPhone 3上进行合并(WORKS)
- 图像宽度:28.0
- 图像高度:29.0
- 图像比例:1.0

c)在iPhone 4上没有合并(WORKS)
- 图像宽度:28.0
- 图像高度:29.0
- 图像比例:2.0

d)在iPhone 4上合并(WORKS NOT)
- 图像宽度:56.0
- 图像高度:58.0
- 图像比例:1.0

如您所见,合并将"28.0/29.0/2.0"转换为"56.0/58.0/1.0"图像.并且这个图像在视网膜显示器上显示得很大.

如何正确合并两个图像以获得2.0的图像?


附录:我用于合并两个图像的代码(从这里开始)

+ (UIImage*)mergeImage:(UIImage*)first withImage:(UIImage*)second
{
 // get size of the first image
 CGImageRef firstImageRef = first.CGImage;
 CGFloat firstWidth = CGImageGetWidth(firstImageRef); …
Run Code Online (Sandbox Code Playgroud)

iphone uiimage ios retina-display

0
推荐指数
1
解决办法
1330
查看次数