在我的应用程序中,我正在使用UITableview.在那个委托方法中,如果我做了任何操作,那么就不会发生.
例如,我在tableview中有3行
如果我选择1行(indexPath.row == 0)则不会发生任何事情
如果再次选择2行(indexPath.row == 1),现在它是登录控制台indexPath.row == 0这是以前的值.
如果再次选择1行,则记录其前一个值indexPath.row = 1.
为什么会这样.
- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath
{
CustomerInfoViewController *customer = [[EquipmentViewController alloc]initWithNibName:@"CustomerInfoViewController" bundle:nil];
EquipmentViewController *equpment = [[EquipmentViewController alloc]initWithNibName:@"EquipmentViewController" bundle:nil];
ContactsViewController *contacts = [[ContactsViewController alloc]initWithNibName:@"ContactsViewController" bundle:nil];
if(indexPath.row == 0)
{
NSLog(@"one %d",indexPath.row);
[detailsView addSubview:customer.view];
}
if(indexPath.row == 1)
{
NSLog(@"two %d",indexPath.row);
[detailsView addSubview:equpment.view];
}
if(indexPath.row == 2)
{
NSLog(@"three%d",indexPath.row);
[detailsView addSubview:contacts.view];
}
}
Run Code Online (Sandbox Code Playgroud)
请有人帮帮我.
提前致谢.
我正在开发一个游戏,用户可以使用最多5个手指,每条线1个手指进行绘制.
当启用多任务手势并且用户尝试从右到左使用4个以上的手指进行绘制时,iPad上的iOS手势识别器会切换到另一个应用程序.
当用户进入我的应用程序时,如何以编程方式禁用此识别器?
我想要更改丰富的UITextView(iOS 6)的部分或全部属性文本,并允许用户撤消更改.
在阅读NSUndoManager文档后,我尝试了第一种方式:
“Simple undo” based on a simple selector with a single object argument.
Run Code Online (Sandbox Code Playgroud)
我期望撤消操作就像这样简单:
声明这个方法:
- (void)setAttributedStringToTextView:(NSAttributedString *)newAttributedString {
NSAttributedString *currentAttributedString = self.textView.attributedText;
if (! [currentAttributedString isEqualToAttributedString:newAttributedString]) {
[self.textView.undoManager registerUndoWithTarget:self
selector:@selector(setAttributedStringToTextView:)
object:currentAttributedString];
[self.textView.undoManager setActionName:@"Attributed string change"];
[self.textView setAttributedText:newAttributedString];
}
}
Run Code Online (Sandbox Code Playgroud)
通过调用以下命令更改我的UITextView中的文本:
[self setAttributedStringToTextView:mutableAttributedString];
Run Code Online (Sandbox Code Playgroud)
但在这之后,NSUndoManager表示它无法撤消.
NSLog(@"Can undo: %d", [self.textView.undoManager canUndo]);
// Prints: "Can undo: 0"
Run Code Online (Sandbox Code Playgroud)
所以我尝试了第二种方式:
“Invocation-based undo” which uses an NSInvocation object.
Run Code Online (Sandbox Code Playgroud)
声明:
- (void)setMyTextViewAttributedString:(NSAttributedString *)newAttributedString {
NSAttributedString *currentAttributedString = [self.textView attributedText];
if (! [currentAttributedString isEqualToAttributedString:newAttributedString]) …Run Code Online (Sandbox Code Playgroud) uitextview nsattributedstring nsundomanager uitextinput ios6
在你把它作为傻瓜关闭之前:我已经阅读了很多关于SO的问题,并且没有一个符合我的所有要求.
我正在寻找将Word文件(.doc或.docx)转换为pdf的解决方案.
环境是一个Rails 3应用程序,托管在heroku上.
解决方案必须可在那里部署.
这些文件很敏感,所以我不能使用第三方服务.
如果可能的话,我更喜欢真正的转换,而不是逐页转换为图片.
我已经看到了一些项目(例如改变宗教信仰),但是必须安装libreoffice.我怀疑在heroku上这是可能的,但我希望被证明是错的.
我可能会为月亮而哭泣,所以......
如果没有符合要求的解决方案,那么可以想象创造性的解决方案.
例如,在某个实例中运行的java转换器,处理.doc上传到Amazon S3的文件.
然而,为了建筑简洁,可维护性和我自己的理智,我宁愿远离那个.
我编写了一个脚本,用于xcodebuild生成iPhone应用程序的AdHoc版本.
我想编辑此脚本以输出用于签署构建的Provisioning Profile的名称.
这将允许我在自动生成的zip中包含Provisioning Profile.这样,我就可以自动将存档发送给AdHoc测试人员,并确保他们拥有正确的配置文件来安装应用程序.
有没有办法提取用于签署应用程序的供应配置文件名称或文件:
Unforgiven 建议使用该命令security获取用于签署应用程序的证书的名称.获得此信息后,有没有办法找到供应配置文件的名称?
这是我尝试过的:
遗憾的是,构建期间xcodebuild的输出不包含此信息.在CodeSign步骤中,有一行:
/usr/bin/codesign -f -s "iPhone Distribution: My name" ...
但我无法将其与证书相匹配.
我研究了使用codesign和命令
/usr/bin/codesign -d -vvv --entitlements - -r - /Users/lv/Desktop/TicTacBoo.app/TicTacBoo看起来很有希望,但它没有给我我需要的信息.
关于Objective C中属性的语法和用法,我有几个基本问题:
假设标题中包含以下声明:
@interface TestObject : NSObject {
NSArray *myArray;
}
@property (nonatomic, retain) NSArray *myArray;
Run Code Online (Sandbox Code Playgroud)
在实施中,我可以:
myArray和self.myArray互换用于设置和获取目的?self.myArray = nil相当于[myArray release]?self.myArray = nil而不是[myArray release]?嗨,我正在使用[NSThread detachNewThreadSelector:toTarget:withObject:]而且我收到了很多内存泄漏,因为我没有为分离的线程设置自动释放池.我只是想知道我在哪里这么做?是在我打电话之前
[NSThread detachNewThreadSelector:toTarget:withObject:]
Run Code Online (Sandbox Code Playgroud)
或者在另一个线程中运行的方法?
任何帮助将不胜感激,一些示例代码将是伟大的.
谢谢.
iPhone设备控制台显示在管理器窗口中(shift + command + 2),但不显示iPhone模拟器.我想在Organizer窗口看到控制台,(不是Xcode控制台[shift + command + y]).
如何在组织者的iPhone设备上显示iPhone模拟器的控制台?
我刚注意到我的iPhone/iPad应用程序中存在一个相当严重的错误:我有一个叫做AppDelegate实现UIApplicationDelegate协议的类- 就像每个iPhone应用程序一样.我正在使用Core Data,并AppDelegate设置我的托管对象上下文(我大多只是保留了Xcode模板的默认方法).
现在我需要在我的应用程序中的几个地方使用托管对象上下文,我还想-saveContext从几个地方调用该方法.所以我使用了单例模式并添加了一个类方法+ (AppDelegate *)sharedAppDelegate,它实现如下:
+ (AppDelegate *)sharedAppDelegate
{
static dispatch_once_t pred = 0;
__strong static id _sharedObject = nil;
dispatch_once(&pred,^{
_sharedObject = [[self alloc] init];
});
return _sharedObject;
}
Run Code Online (Sandbox Code Playgroud)
到目前为止一切正常.但是现在,我试图访问sharedAppDelegate的UIWindow属性,发现它nil.起初我很困惑,但后来我意识到,首先我的main方法创建了一个实例AppDelegate,它创建了UIWindow视图控制器-application:didFinishLaunchingWithOptions:,然后-sharedAppDelegate创建另一个!我发现很奇怪我的应用程序到目前为止似乎工作得很好,因为例如只有第一个实例-saveContext在应用程序存在时调用.
无论如何,我想改变它,以便该main方法也使用sharedAppDelegate.这是否意味着我需要覆盖该-init方法?如何防止无限循环(-sharedAppDelegate毕竟还是calles init)?我应该制作_sharedObject全球范围的变量吗?
iphone ×5
ios ×3
xcode ×3
objective-c ×2
charts ×1
cocoa ×1
cocoa-touch ×1
codesign ×1
converter ×1
core-data ×1
heroku ×1
ios6 ×1
ipad ×1
javascript ×1
logging ×1
pie-chart ×1
provisioning ×1
singleton ×1
uitableview ×1
uitextinput ×1
uitextview ×1