Is there a safe way to "convert" a CGFloat to a NSNumber ?
NSNumber has the numberWithFloat: and numberWithDouble: methods but CGFloat being defined as float or double depending on the platform, it seems risky to use either one of them.
或者numberWithDouble:安全使用a CGFloat,因为它是更精确的?
我正在研究iOS应用程序,其中我希望XML文件成为此应用程序的主要输入.我已经开始搜索行程(主要在stackoverflow中)以查找如何从电子邮件接收XML文件.
首先,我找到了一种替代方法,即为我的文件注册URL格式,并在电子邮件中使用它而不是附加的文件,这种方法很有效.
现在我想使用文件本身(附件)我发现我需要在此应用程序中注册自定义文件类型取决于此资源
与此相关我已使用此代码编辑了info.plist文件
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeName</key>
<string>XML File</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
<key>LSHandlerRank</key>
<string>Owner</string>
<key>LSItemContentTypes</key>
<array>
<string>com.IT.parseXML.XML</string>
</array>
</dict>
</array>
Run Code Online (Sandbox Code Playgroud)
这部分也是
<key>UTExportedTypeDeclarations</key>
<array>
<dict>
<key>UTTypeConformsTo</key>
<array>
<string>public.text</string>
</array>
<key>UTTypeDescription</key>
<string>XML Document</string>
<key>UTTypeIdentifier</key>
<string>public.xml</string>
<key>UTTypeReferenceURL</key>
<string>http://www.w3.org/TR/rec-xml</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename-extension</key>
<array>
<string>xml</string>
</array>
<key>public.mime-type</key>
<string>text/xml</string>
</dict>
</dict>
</array>
Run Code Online (Sandbox Code Playgroud)
我期望能够处理来自电子邮件的XML文件......但这不会发生,我错过了什么?
提前致谢
我有一个有限数量的类与几乎相同的实现,唯一不同的是他们操作的基础数据类型:
class IntContainer
{
public:
void setData(int data);
int getData();
int _data;
};
class BoolContainer
{
public:
void setData(bool data);
bool getData();
bool _data;
};
class StringContainer
{
public:
void setData(std::string data);
std::string getData();
std::string _data;
};
// Etc. You get the idea.
Run Code Online (Sandbox Code Playgroud)
我想通过使用如下模板来减少这些类的代码重复:
template<typename T>
class GenericContainer
{
public:
void setData(T data);
T getData();
T _data;
};
Run Code Online (Sandbox Code Playgroud)
专业化:
typedef GenericContainer<int> IntContainer;
typedef GenericContainer<bool> BoolContainer;
typedef GenericContainer<std::string> StringContainer;
Run Code Online (Sandbox Code Playgroud)
这很好用.但我还想为这些专用类添加一个抽象基类,以便能够以通用方式操作它们(例如,在集合中).问题是这个基类应该有getData和setData方法能够调用它们,即使不知道被操纵的对象的动态类型.
我会用这样的东西实现它:
class Base
{
public: …Run Code Online (Sandbox Code Playgroud) 是否有可能UICollectionView仅在轻敲元素时更改背景颜色.我试过了:
-(void) collectionView:(UICollectionView *)collectionView didHighlightItemAtIndexPath:(NSIndexPath *)indexPath{
//change color when tapped
}
-(void)collectionView:(UICollectionView *)collectionView didUnhighlightItemAtIndexPath:(NSIndexPath *)indexPath{
//change back on touch up
}
Run Code Online (Sandbox Code Playgroud)
但结果是,只有当我的手指保持更长时间时才能看到变化.是否有类似UITableViewCell方法的东西willSelectItemAtIndexPath:?
我正在使用 Markdown 语法的 Mac 应用程序中的富文本编辑器。我NSTextStorage过去常常在 Markdown 语法中观察匹配项,然后NSAttributedString像这样实时地将样式应用到:
在这一点上,我已经在这方面不知所措,但我很高兴能够取得进展。:)本教程非常有帮助。
作为下一步,我想在呈现 's 字符串时隐藏 Markdown 字符NSTextView。所以在上面的例子中,一旦最后一个星号被输入,我希望* *字符被隐藏,只是sample以粗体显示。
我正在使用NSLayoutManager委托,我可以看到匹配的字符串,但我不清楚如何使用该shouldGenerateGlyphs方法生成修改后的字形/属性。这是我到目前为止所拥有的:
func layoutManager(_: NSLayoutManager, shouldGenerateGlyphs _: UnsafePointer<CGGlyph>, properties _: UnsafePointer<NSLayoutManager.GlyphProperty>, characterIndexes _: UnsafePointer<Int>, font _: NSFont, forGlyphRange glyphRange: NSRange) -> Int {
let pattern = "(\\*\\w+(\\s\\w+)*\\*)" // Look for stuff like *this*
do {
let regex = try NSRegularExpression(pattern: pattern)
regex.enumerateMatches(in: textView.string, range: glyphRange) {
match, _, _ in …Run Code Online (Sandbox Code Playgroud) 我正试图在移动浏览器上解决css"position:fixed"属性的问题.我有一个固定的div:
<div id="logo">
...other content here...
</div>
Run Code Online (Sandbox Code Playgroud)
用css:
#logo{
position: fixed;
-webkit-backface-visibility: hidden;
bottom: 100px;
right: 0px;
width: 32px;
height: 32px;
}
Run Code Online (Sandbox Code Playgroud)
因此,通常行为完全是所需的行为,div位置始终位于窗口的右下角,与滚动位置无关.我的问题是,在移动浏览器上,当用户缩放页面时,在某个缩放级别之后,div位置是错误的(有时div会从窗口中消失).
我知道移动浏览器不支持固定位置,但我想知道是否有一些解决方法.我尝试使用这个js代码onScroll事件:
window.addEventListener('scroll', function(e){
drag.style['-webkit-transform'] = 'scale(' +window.innerWidth/document.documentElement.clientWidth + ')';\\I want to avoid zoom on this element
var r = logo.getBoundingClientRect();
var w = window.innerWidth;
var h = window.innerHeight;
if(r.right != w){
rOff = r.right - w;
logo.style.right = rOff;
}
if(r.top+132 != h){\
tOff = r.top + 132 - h;
logo.style.bottom = tOff;
}
});
Run Code Online (Sandbox Code Playgroud)
不幸的是,代码似乎回到了错误的位置.
有人有任何提示吗?
当尝试在iOS 11设备上调试UNNotificationServiceExtension时,Xcode无法正确附加到Extension进程,并且进程本身在被拦截和处理收到的通知之前被Springboard杀死.
当运行由Xcode创建的Scheme来调试扩展时,总是会发生这种情况.正常调试应用程序时(使用"主"应用程序方案),NotificationServiceExtension运行正常并拦截通知(但无法调试).
以下日志显示在设备控制台上:
错误SpringBoard [com.acme.notification]扩展将因启动缓慢而被终止
错误SpringBoard Hub连接错误错误Domain = NSCocoaErrorDomain Code = 4097"连接到名为com.acme.notification的服务"UserInfo = {NSDebugDescription =连接到名为com.acme.notification的服务}
有时,Xcode在收到通知时也会弹出错误对话框(调试器应该附加时):
无法附加到pid:"{PID NUMBER}"
确保"com.acme.notification"尚未运行,{USER}有权对其进行调试.
请注意,在运行iOS 10的设备上,这工作正常,Extension有机会处理通知,调试器将正常附加和中断扩展代码.
我在这里缺少什么,或者这是我应该向Apple报告的错误?有同样行为的人吗?
我创建了一个UICollectionViewCell包含标签插座的自定义(放在故事板中).我想从awakeFromNib我的自定义方法中获取此标签的高度UICollectionViewCell,但标签的大小始终为0.000000:
// .h
@interface MyCustomCell : UICollectionViewCell
@property (weak, nonatomic) IBOutlet UILabel *myLabel;
@end
// .m
@implementation MyCustomCell
-(void)awakeFromNib
{
[super awakeFromNib];
NSLog(@"%@", self.myLabel);
NSLog(@"%f", self.myLabel.frame.size.width);
NSLog(@"%f", self.myLabel.frame.size.height);
}
@end
Run Code Online (Sandbox Code Playgroud)
控制台输出:
2013-02-06 11:13:59.628 Test[8880:c07] <UILabel: 0x7649a00; frame = (0 0; 0 0); text = '12h00'; clipsToBounds = YES; opaque = NO; autoresize = TM+BM; userInteractionEnabled = NO; layer = <CALayer: 0x7649ac0>>
2013-02-06 11:13:59.628 Test[8880:c07] 0.000000
2013-02-06 11:13:59.630 Test[8880:c07] 0.000000
Run Code Online (Sandbox Code Playgroud)
如何获得标签的大小?在awakeFromNib被叫时获取此类信息还为时尚早吗?如果是这样,我的自定义单元格的哪种方法应该可以得到大小? …
我正在使用SDWebImage和抓取与新闻API中的新闻文章相关联的图像.
问题是,在我开始滚动之前,屏幕上的单元格图像没有加载UITableView.一旦我滚过一个单元格,它就会离开屏幕,一旦我回到它,最终会加载Image.
这是我的(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath代码:
if ([feedLocal.images count] == 0) {
[cell.imageView setImage:[UIImage imageNamed:@"e.png"]];
}
else {
Images *imageLocal = [feedLocal.images objectAtIndex:0];
NSString *imageURL = [NSString stringWithFormat:@"%@", imageLocal.url];
NSLog(@"img url: %@", imageURL);
// Here we use the new provided setImageWithURL: method to load the web image
__weak UITableViewCell *wcell = cell;
[cell.imageView setImageWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@", imageURL]]
placeholderImage:[UIImage imageNamed:@"115_64.png"]
completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType) {
if(image == nil) {
[wcell.imageView setImage:[UIImage …Run Code Online (Sandbox Code Playgroud) 我已经搜索了谷歌并用我的.clang格式文件修补了几个小时了.
我希望我的块看起来像这样:
[UIView animateWithDuration:0.3 animations:^{
label.alpha = 0;
} completion:^(BOOL finished) {
label.hidden = YES;
}];
Run Code Online (Sandbox Code Playgroud)
不是这个:
[UIView animateWithDuration:0.3 animations:^{
label.alpha = 0;
}
completion:^(BOOL finished) {
label.hidden = YES;
}];
Run Code Online (Sandbox Code Playgroud)
我似乎无法找到正确的参数或参数组.
我也给了Uncrustify一个镜头,但是用新的配置文件语法盯着是不可取的,特别是如果有一个clang格式的解决方案.
ios ×6
objective-c ×6
awakefromnib ×1
c++ ×1
cgfloat ×1
clang-format ×1
css ×1
css-position ×1
file-type ×1
html ×1
inheritance ×1
javascript ×1
nsnumber ×1
nstextview ×1
sdwebimage ×1
templates ×1
textkit ×1
uitableview ×1
xcode ×1